/* Concept ecosystem SHELL — header, dynamic app drawer, sidebar / bottom nav. Pairs with shell.js and concept-ui.css */
:root{--cc-shell-top:52px;--cc-shell-side:232px}
body.cc-shell{padding-top:var(--cc-shell-top)!important;font-family:var(--font-body)}
body.cc-shell-sidebar{padding-left:var(--cc-shell-side)}
.cc-shell-header{position:fixed;top:0;left:0;right:0;z-index:1000;height:var(--cc-shell-top);min-height:0;padding:0 14px;gap:10px;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.cc-shell-brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;min-width:0}
.cc-shell-mark{width:30px;height:30px;flex:0 0 auto;filter:drop-shadow(1px 1px 0 rgba(0,0,0,.45))}
.cc-shell-title{font:600 15px var(--font-body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-shell-spacer{flex:1}
.cc-shell-user{display:inline-flex;align-items:center;gap:6px;font-size:13px;opacity:.9;white-space:nowrap}
.cc-shell-user .icon{width:18px;height:18px}
.cc-shell-header .btn .icon{width:16px;height:16px}
.cc-shell-menubtn{display:inline-flex}
.cc-burger{display:inline-flex;flex-direction:column;gap:3px;width:18px} .cc-burger i{display:block;height:2px;background:#fff;border-radius:2px;transition:.15s}
[aria-expanded="true"] .cc-burger i:nth-child(1){transform:translateY(5px) rotate(45deg)} [aria-expanded="true"] .cc-burger i:nth-child(2){opacity:0} [aria-expanded="true"] .cc-burger i:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
body.cc-shell-side-collapsed{padding-left:0} body.cc-shell-side-collapsed .cc-shell-side{transform:translateX(-100%)}
.cc-shell-side{transition:transform .15s}
/* sidebar (desktop) */
.cc-shell-side{position:fixed;top:var(--cc-shell-top);left:0;bottom:0;width:var(--cc-shell-side);overflow-y:auto;z-index:900;box-shadow:1px 0 0 rgba(255,255,255,.06)}
.cc-shell-bottom{display:none}
/* apps drawer */
.cc-shell-drawer{position:fixed;inset:0;z-index:1100}
.cc-shell-drawer-bg{position:absolute;inset:0;background:rgba(13,34,51,.45)}
.cc-shell-drawer-panel{position:absolute;top:0;right:0;bottom:0;width:min(92vw,560px);background:var(--cc-bg);display:flex;flex-direction:column;box-shadow:-4px 0 18px rgba(0,0,0,.25);animation:ccslide .18s ease-out}
@keyframes ccslide{from{transform:translateX(30px);opacity:0}to{transform:none;opacity:1}}
.cc-shell-drawer-head{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#fff;border-bottom:1px solid var(--cc-line);font-family:var(--font-body)}
.cc-shell-drawer-head b{font:700 18px var(--font-heading);color:var(--cc-navy)}
.cc-shell-drawer-sub{font-size:12px;color:var(--cc-mut);flex:1}
.cc-shell-drawer-body{overflow-y:auto;padding:12px 16px 24px}
.cc-shell-drawer-body section{background:#fff;border:1px solid var(--cc-line);border-radius:12px;padding:12px 14px;margin-bottom:12px}
.cc-shell-drawer-body h3{margin:0 0 10px;font:700 12px var(--font-body);letter-spacing:.5px;text-transform:uppercase;color:var(--cc-mut);display:flex;align-items:center;gap:8px}
.cc-shell-count{font-weight:600;color:var(--cc-navy);background:#DEE7EF;border-radius:10px;padding:1px 8px;font-size:11px;letter-spacing:0}
.cc-shell-app{text-decoration:none;color:inherit} .cc-shell-app.is-locked{cursor:not-allowed}
.cc-shell-app .tile .icon{width:54%;height:54%;stroke-width:1.85}
.cc-shell-loading{color:var(--cc-mut);font-size:13px}
/* mobile */
@media (max-width:768px){
  body.cc-shell-sidebar{padding-left:0;padding-bottom:64px}
  .cc-shell-side{transform:translateX(-100%);transition:transform .15s} body.cc-shell-side-open .cc-shell-side{transform:none}
  .cc-shell-menubtn{display:inline-flex}
  .cc-shell-bottom{display:flex}
  .cc-shell-hide-m{display:none}
  .cc-shell-title{font-size:14px}
}
/* footer (company info from admin → every site) */
.cc-shell-footer{background:var(--cc-navy);color:rgba(255,255,255,.85);margin-top:32px;font-family:var(--font-body);font-size:13px}
body.cc-shell-sidebar .cc-shell-footer{margin-left:0}
.cc-shell-footer-in{max-width:1180px;margin:0 auto;padding:22px 16px 18px;display:grid;grid-template-columns:1.2fr 1fr 1fr 1.2fr;gap:18px}
.cc-shell-footer-brand img{height:56px;display:block;margin-bottom:6px} .cc-shell-footer-brand span{font-size:12px;opacity:.8}
.cc-shell-footer-col{display:flex;flex-direction:column;gap:3px} .cc-shell-footer-col b{font-size:11px;letter-spacing:.5px;text-transform:uppercase;opacity:.7;margin-bottom:2px}
.cc-shell-footer a{color:#fff;text-decoration:none} .cc-shell-footer a:hover{text-decoration:underline}
.cc-shell-footer-note{grid-column:1/-1;opacity:.85}
.cc-shell-footer-legal{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:10px;font-size:12px;opacity:.7}
@media (max-width:768px){.cc-shell-footer-in{grid-template-columns:1fr 1fr} .cc-shell-footer-brand{grid-column:1/-1} body.cc-shell-sidebar .cc-shell-footer{margin-bottom:64px}}
/* page template helpers */
.cc-page{max-width:1180px;margin:0 auto;padding:18px 16px}
.cc-page h1{font:700 26px/1.2 var(--font-heading);color:var(--cc-navy);margin:0 0 4px}
.cc-page .cc-lead{color:var(--cc-mut);font-size:14px;margin:0 0 16px}
.cc-card{background:#fff;border:1px solid var(--cc-line);border-radius:12px;padding:16px 18px;margin-bottom:14px}
.cc-card h2{margin:0 0 12px;font:700 13px var(--font-body);letter-spacing:.5px;text-transform:uppercase;color:#41525f}
.cc-form{display:grid;gap:12px 16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.cc-field{display:flex;flex-direction:column;gap:4px} .cc-field label{font:600 11px var(--font-body);color:var(--cc-mut)}
.cc-field input,.cc-field select,.cc-field textarea{font:var(--btn-fs-md) var(--font-body);height:var(--btn-h-md);padding:0 10px;border:1px solid var(--cc-line);border-radius:6px;background:#fff}
.cc-field textarea{height:auto;min-height:88px;padding:8px 10px}
.cc-field input:focus,.cc-field select:focus,.cc-field textarea:focus{outline:2px solid var(--cc-focus);border-color:var(--cc-blue)}
.cc-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;padding-top:12px;border-top:1px solid var(--cc-line);margin-top:12px}
.cc-table{width:100%;border-collapse:collapse;font:13px var(--font-body);font-variant-numeric:tabular-nums}
.cc-table th{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#556;background:#F6F8FA;text-align:left;padding:8px}
.cc-table td{padding:8px;border-top:1px solid var(--cc-line)} .cc-table td.num,.cc-table th.num{text-align:right}
.cc-empty{padding:40px;text-align:center;color:var(--cc-mut);border:1px dashed var(--cc-line);border-radius:12px;background:#fff}
/* login / signed-out pages */
.cc-auth{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,var(--cc-navy),var(--cc-navy2));padding:16px}
.cc-auth-card{width:100%;max-width:400px;background:#fff;border-radius:14px;padding:28px 26px;box-shadow:0 12px 40px rgba(0,0,0,.35);text-align:center}
.cc-auth-card img.logo{height:76px;margin:0 auto 10px;display:block}
.cc-auth-card h1{font:700 22px var(--font-heading);color:var(--cc-navy);margin:0 0 2px} .cc-auth-card p{color:var(--cc-mut);font-size:13px;margin:0 0 18px}
.cc-auth-card .cc-form{grid-template-columns:1fr;text-align:left}
