:root{font-family:Avenir Next,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;color:#17241f;background:#f4f4ed;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #17241f;--ink-soft: #53625c;--paper: #fbfbf5;--canvas: #f4f4ed;--line: #e1e3da;--green: #193c32;--green-2: #285a4a;--lime: #dcf36b;--lime-soft: #eff8c6;--orange: #f2835a;--red: #c94e43;--blue: #3f6dc6;--shadow: 0 18px 50px rgba(24, 45, 36, .08);--shadow-small: 0 8px 24px rgba(24, 45, 36, .07)}*{box-sizing:border-box}html{min-width:320px;background:var(--canvas)}body{margin:0;min-width:320px;min-height:100vh;background:var(--canvas);color:var(--ink);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid rgba(63,109,198,.35);outline-offset:2px}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.eyebrow{display:block;color:#7a8a83;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.brand{display:inline-flex;align-items:center;gap:11px;width:fit-content}.brand-mark{position:relative;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:3px;width:34px;height:34px;padding:3px;background:var(--lime);border-radius:10px;transform:rotate(-3deg)}.brand-mark span{display:block;background:var(--green);border-radius:2px}.brand-mark span:first-child{grid-row:span 2;border-radius:3px 1px 1px 3px}.brand-mark span:nth-child(2){border-radius:1px 3px 1px 1px}.brand-mark span:nth-child(3){background:var(--green-2);border-radius:1px 1px 3px}.brand-copy{display:flex;flex-direction:column;line-height:1}.brand-copy strong{font-size:20px;font-weight:900;letter-spacing:.08em}.brand-copy small{margin-top:6px;color:#6d7b75;font-size:8px;font-weight:800;letter-spacing:.21em}.primary-button,.secondary-button,.danger-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border:1px solid transparent;border-radius:12px;font-size:14px;font-weight:750;line-height:1;transition:transform .16s ease,background .16s ease,box-shadow .16s ease}.primary-button{color:#fff;background:var(--green);box-shadow:0 8px 20px #193c3229}.primary-button:hover{background:#245244;transform:translateY(-1px)}.secondary-button{color:var(--ink);background:#fff;border-color:var(--line)}.secondary-button:hover{background:#f7f8f2;border-color:#c8cec5}.danger-button{color:#fff;background:var(--red)}.secondary-button.small{min-height:36px;padding:0 13px;font-size:13px}.toast-stack{position:fixed;z-index:1000;top:max(18px,env(safe-area-inset-top));right:18px;display:flex;flex-direction:column;gap:9px;width:min(380px,calc(100vw - 36px));pointer-events:none}.toast{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:13px 14px;color:#fff;background:#173a31;border:1px solid rgba(255,255,255,.12);border-radius:13px;box-shadow:0 18px 40px #0c1e183d;font-size:14px;pointer-events:auto;animation:fade-up .23s ease both}.toast.error{background:#8e332d}.toast button{display:grid;place-items:center;padding:4px;color:inherit;background:transparent;border:0}.page-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:280px;padding:40px 20px;color:var(--ink-soft);text-align:center}.loading-state{gap:11px;font-size:14px}.empty-state{gap:8px}.empty-state strong,.error-state strong{color:var(--ink);font-size:17px}.empty-icon{display:grid;place-items:center;width:58px;height:58px;margin-bottom:5px;color:var(--green-2);background:#e8eddc;border-radius:18px}.error-state{gap:10px;color:#96625c}.error-state button{margin-top:8px;padding:9px 15px;color:var(--green);background:#fff;border:1px solid var(--line);border-radius:9px}.fullscreen-loader{display:grid;min-height:100vh;place-items:center;background:var(--canvas)}.public-page{min-height:100vh;background:radial-gradient(circle at 85% 8%,rgba(220,243,107,.17),transparent 24%),var(--canvas)}.public-header{display:flex;align-items:center;justify-content:space-between;width:min(1240px,calc(100% - 48px));margin:0 auto;padding:22px 0 18px}.public-header-actions{display:flex;align-items:center;gap:14px}.live-indicator{display:inline-flex;align-items:center;gap:7px;color:#61726b;font-size:12px;font-weight:650}.live-indicator i{width:7px;height:7px;background:#69aa5b;border-radius:50%;box-shadow:0 0 0 5px #69aa5b1c}.login-entry{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 13px;color:var(--ink);background:#ffffffb8;border:1px solid var(--line);border-radius:999px;font-size:12px;font-weight:700}.hero-kicker{display:inline-flex;align-items:center;gap:8px;width:fit-content;padding:7px 11px;color:var(--lime);background:#dcf36b17;border:1px solid rgba(220,243,107,.17);border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.08em}.catalog-section{width:min(1240px,calc(100% - 48px));margin:0 auto;padding:30px 0 40px}.catalog-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.section-index{color:#7c8b84;font-size:10px;font-weight:850;letter-spacing:.17em}.catalog-heading h2{margin-top:9px;font-size:30px;letter-spacing:-.04em}.catalog-heading p{margin-top:7px;color:var(--ink-soft);font-size:13px}.refresh-button{display:inline-flex;align-items:center;gap:7px;min-height:39px;padding:0 13px;color:var(--ink-soft);background:transparent;border:1px solid var(--line);border-radius:10px;font-size:12px}.public-search{display:flex;align-items:center;gap:12px;width:min(560px,100%);height:52px;margin-top:25px;padding:0 16px;color:#84928c;background:#fff;border:1px solid #dfe2d8;border-radius:15px;box-shadow:0 6px 18px #23372f09}.public-search input{flex:1;min-width:0;color:var(--ink);background:transparent;border:0;outline:0;font-size:14px}.public-search button{display:grid;place-items:center;padding:4px;color:#75847d;background:transparent;border:0}.filter-rail{display:flex;align-items:center;justify-content:space-between;margin-top:18px}.type-tabs{display:flex;gap:5px;padding:4px;background:#e9ebe3;border-radius:11px}.type-tabs button{min-height:34px;padding:0 15px;color:#6b7872;background:transparent;border:0;border-radius:8px;font-size:12px;font-weight:700}.type-tabs button.active{color:var(--ink);background:#fff;box-shadow:0 3px 10px #1e322a12}.category-pills{display:flex;gap:8px;margin:18px 0 22px;overflow-x:auto;scrollbar-width:none}.category-pills::-webkit-scrollbar{display:none}.category-pills button{flex:0 0 auto;min-height:36px;padding:0 14px;color:#596760;background:transparent;border:1px solid #daddd3;border-radius:999px;font-size:12px;font-weight:650;transition:.16s ease}.category-pills button.active{color:#fff;background:var(--green);border-color:var(--green)}.public-material-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;transition:opacity .2s ease}.public-material-grid.is-refreshing{opacity:.55}.public-material-card{position:relative;overflow:hidden;background:#fff;border:1px solid #e5e6de;border-radius:17px;box-shadow:0 7px 20px #1e322a09;cursor:pointer;animation:fade-up .35s ease both;animation-delay:calc(var(--card-index) * .04s);transition:transform .2s ease,box-shadow .2s ease}.public-material-card:hover{transform:translateY(-4px);box-shadow:0 18px 35px #1e322a1a}.material-cover{position:relative;aspect-ratio:4 / 4.7;overflow:hidden;background:#ebe9df}.material-cover img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.public-material-card:hover .material-cover img{transform:scale(1.025)}.material-type-chip,.expiry-chip{position:absolute;display:inline-flex;align-items:center;gap:5px;min-height:25px;padding:0 8px;color:#fff;border-radius:7px;font-size:10px;font-weight:750;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.material-type-chip{top:10px;left:10px;background:#142620b8}.expiry-chip{right:10px;bottom:10px;color:#203129;background:#fafaf3e6}.expiry-chip.urgent{color:#fff;background:#ae4235e0}.material-card-body{padding:15px 16px 14px}.material-category{display:block;color:#7a8781;font-size:10px;font-weight:700;letter-spacing:.04em}.material-card-body h3{margin-top:7px;overflow:hidden;font-size:15px;font-weight:750;letter-spacing:-.02em;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}.material-card-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:13px;padding-top:12px;color:#7b8781;border-top:1px solid #edeee8;font-size:10px}.public-tip{display:flex;align-items:center;gap:13px;margin-top:30px;padding:16px 18px;color:#68766f;background:#e6eadca3;border:1px solid #dfe3d6;border-radius:14px}.tip-icon{display:grid;flex:0 0 auto;width:34px;height:34px;color:var(--green);background:var(--lime);border-radius:10px;place-items:center}.public-tip p{font-size:12px;line-height:1.6}.public-tip strong{margin-right:10px;color:var(--ink)}.public-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;width:min(1240px,calc(100% - 48px));margin:0 auto;padding:30px 0 38px;border-top:1px solid #ddded5}.public-footer .brand{transform:scale(.84);transform-origin:left center}.public-footer p,.public-footer>span{color:#7b8882;font-size:11px}.preview-backdrop{position:fixed;z-index:500;inset:0;display:grid;padding:24px;background:#0c1713c7;place-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.preview-panel{position:relative;display:grid;grid-template-columns:minmax(300px,520px) minmax(280px,380px);width:min(960px,calc(100vw - 48px));max-height:calc(100dvh - 48px);overflow:hidden;background:#fbfbf6;border-radius:22px;box-shadow:0 30px 90px #00000059}.preview-close{position:absolute;z-index:3;top:13px;right:13px;display:grid;width:38px;height:38px;color:#fff;background:#14231d9e;border:0;border-radius:50%;place-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.preview-image{display:flex;align-items:center;justify-content:center;min-height:0;padding:22px;overflow:auto;background:#292f2c}.preview-image img{width:auto;max-height:calc(100dvh - 92px);object-fit:contain;border-radius:5px}.preview-detail{align-self:center;padding:48px 34px;overflow-y:auto}.preview-detail h2{margin-top:10px;padding-right:20px;font-size:28px;letter-spacing:-.04em;line-height:1.25}.preview-facts{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:25px;overflow:hidden;background:#e5e7df;border:1px solid #e5e7df;border-radius:12px}.preview-facts span{display:flex;flex-direction:column;gap:5px;padding:14px;background:#fff;font-size:12px}.preview-facts span:nth-child(3){grid-column:span 2}.preview-facts strong{color:#89948e;font-size:10px;font-weight:700}.preview-notes{margin-top:18px;padding:14px;color:#5c6963;background:#f0f1eb;border-radius:10px;font-size:12px;line-height:1.7}.preview-readonly{display:flex;gap:7px;margin-top:22px;color:#87928d;font-size:10px;line-height:1.5}.login-page{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(420px,.82fr);min-height:100dvh;background:#f7f7f0}.login-showcase{position:relative;display:flex;flex-direction:column;min-height:100dvh;padding:30px clamp(34px,5vw,78px);overflow:hidden;color:#f7f9ed;background:radial-gradient(circle at 88% 15%,rgba(220,243,107,.16),transparent 25%),radial-gradient(circle at 10% 95%,rgba(111,162,133,.2),transparent 30%),#173a31}.login-showcase:before{position:absolute;inset:0;content:"";background-image:radial-gradient(rgba(237,247,205,.11) 1px,transparent 1px);background-size:27px 27px;-webkit-mask-image:linear-gradient(to bottom,black,transparent 85%);mask-image:linear-gradient(to bottom,black,transparent 85%);pointer-events:none}.login-showcase .brand{position:relative;z-index:2}.login-showcase .brand-copy strong{color:#fff}.login-showcase .brand-copy small{color:#9eb3a9}.login-showcase-top{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between}.back-to-store{display:inline-flex;align-items:center;gap:6px;color:#b8c9c1;font-size:12px}.login-story{position:relative;z-index:2;max-width:650px;margin:auto 0;padding:60px 0 290px}.login-story h1{margin-top:24px;font-size:clamp(42px,5vw,74px);font-weight:850;letter-spacing:-.065em;line-height:1.09}.login-story h1 em{color:var(--lime);font-style:normal}.login-story>p{max-width:530px;margin-top:23px;color:#b6c8c0;font-size:15px;line-height:1.75}.login-benefits{display:flex;flex-wrap:wrap;gap:9px 18px;margin-top:26px}.login-benefits span{display:inline-flex;align-items:center;gap:7px;color:#d5dfda;font-size:12px}.login-benefits svg{color:var(--lime)}.login-quote{position:absolute;z-index:2;bottom:31px;left:clamp(34px,5vw,78px);max-width:420px;color:#9cb0a7}.login-quote>span{color:var(--lime);font-family:Georgia,serif;font-size:38px;line-height:.7}.login-quote p{margin-top:7px;font-size:12px;line-height:1.65}.login-visual{position:absolute;z-index:1;right:2%;bottom:-25px;width:390px;height:330px;opacity:.88}.poster-mini{position:absolute;display:flex;flex-direction:column;justify-content:space-between;width:138px;height:185px;padding:17px;border-radius:5px;box-shadow:0 20px 40px #0000003b}.poster-mini i{font-family:Arial,sans-serif;font-size:8px;font-style:normal;font-weight:800;letter-spacing:.14em}.poster-mini strong{font-size:24px;letter-spacing:-.08em;line-height:1.02}.poster-a{right:175px;bottom:56px;color:#23463b;background:#d9eabc;transform:rotate(-9deg)}.poster-b{right:69px;bottom:84px;color:#f7ddb1;background:#503736;transform:rotate(5deg)}.poster-c{right:8px;bottom:17px;color:#183b31;background:#efca85;transform:rotate(13deg)}.login-form-side{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;padding:46px 48px}.login-mobile-brand{display:none}.login-card{width:min(410px,100%)}.login-heading h2{margin-top:10px;font-size:32px;letter-spacing:-.045em}.login-heading p{margin-top:9px;color:var(--ink-soft);font-size:13px}.form-field{display:flex;flex-direction:column;gap:8px;min-width:0;color:#3d4b45;font-size:12px;font-weight:700}.login-card>.form-field{margin-top:22px}.form-field b{color:var(--orange)}.form-field input,.form-field select,.form-field textarea{width:100%;min-height:45px;padding:0 13px;color:var(--ink);background:#fff;border:1px solid #d9ddd4;border-radius:10px;outline:0;font-size:14px;font-weight:500;transition:border-color .16s,box-shadow .16s}.form-field textarea{min-height:96px;padding-top:11px;line-height:1.6;resize:vertical}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#719085;box-shadow:0 0 0 3px #4e79691a}.form-field small{color:#89948e;font-size:10px;font-weight:500}.input-with-icon{position:relative;display:flex;align-items:center}.input-with-icon>svg{position:absolute;left:13px;color:#829089;pointer-events:none}.input-with-icon input{padding-left:42px}.password-toggle{position:absolute;right:10px;display:grid;padding:5px;color:#7d8b84;background:transparent;border:0;place-items:center}.form-error{margin-top:14px;padding:11px 13px;color:#8e3d34;background:#fbeae5;border:1px solid #f1cec7;border-radius:9px;font-size:12px;line-height:1.5}.login-submit{width:100%;margin-top:22px}.demo-login{margin-top:25px;padding-top:20px;border-top:1px solid #e1e2da}.demo-title{display:flex;align-items:center;justify-content:center;gap:6px;color:#7d8a84;font-size:10px}.demo-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}.demo-buttons button{min-height:34px;color:#596760;background:#eceee6;border:1px solid transparent;border-radius:8px;font-size:11px}.demo-buttons button:hover{color:var(--green);background:#e4ead5;border-color:#d6dfc4}.login-copyright{margin-top:45px;color:#9ca6a1;font-size:10px}.admin-shell{min-height:100vh;background:var(--canvas)}.sidebar{position:fixed;z-index:50;inset:0 auto 0 0;display:flex;flex-direction:column;width:228px;padding:24px 18px 18px;color:#eaf0eb;background:var(--green)}.sidebar .brand{margin-left:8px}.sidebar .brand-copy strong{color:#fff}.sidebar .brand-copy small{color:#90a89d}.side-role{display:flex;align-items:center;gap:10px;margin:27px 0 18px;padding:12px;background:#ffffff0e;border:1px solid rgba(255,255,255,.07);border-radius:12px}.side-role>span{display:grid;flex:0 0 auto;width:34px;height:34px;color:var(--green);background:var(--lime);border-radius:9px;font-size:11px;font-weight:900;place-items:center}.side-role div{display:flex;min-width:0;flex-direction:column;gap:3px}.side-role strong{overflow:hidden;color:#fff;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.side-role small{color:#91a79d;font-size:9px}.side-nav{display:flex;flex-direction:column;gap:5px}.side-nav a{display:flex;align-items:center;gap:11px;min-height:43px;padding:0 12px;color:#aabeb5;border-radius:10px;font-size:12px;font-weight:650;transition:.16s ease}.side-nav a:hover{color:#fff;background:#ffffff0d}.side-nav a.active{color:var(--green);background:var(--lime)}.side-nav a.active svg{stroke-width:2.2}.side-footer{display:flex;flex-direction:column;gap:7px;margin-top:auto}.side-public-link,.side-logout{display:flex;align-items:center;gap:9px;min-height:39px;padding:0 10px;color:#aabeb5;background:transparent;border:0;font-size:11px;text-align:left}.side-public-link:hover,.side-logout:hover{color:#fff}.side-version{display:flex;align-items:center;gap:7px;margin-top:11px;padding:12px 9px 0;color:#718a7f;border-top:1px solid rgba(255,255,255,.08);font-size:8px}.admin-main{min-height:100vh;margin-left:228px}.mobile-admin-header,.mobile-bottom-nav{display:none}.admin-page{width:min(1320px,100%);min-height:100vh;margin:0 auto;padding:38px clamp(24px,3.2vw,54px) 70px}.admin-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:27px}.admin-page-header h1{margin-top:8px;font-size:clamp(28px,3vw,38px);font-weight:850;letter-spacing:-.05em;line-height:1.15}.admin-page-header p{max-width:720px;margin-top:9px;color:var(--ink-soft);font-size:13px;line-height:1.6}.header-actions{display:flex;flex:0 0 auto;gap:9px}.panel{background:var(--paper);border:1px solid #e2e4db;border-radius:18px;box-shadow:0 9px 24px #1c312809}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.panel-heading h2{margin-top:7px;font-size:19px;letter-spacing:-.03em}.text-link{display:inline-flex;align-items:center;gap:4px;color:#62736b;font-size:11px;font-weight:650}.text-link:hover{color:var(--green)}.panel-empty{padding:35px 0 15px;color:#8c9892;font-size:12px;text-align:center}.inline-alert{margin-bottom:16px;padding:12px 14px;border-radius:10px;font-size:12px}.inline-alert.danger{color:#8e3f37;background:#fbe9e5;border:1px solid #f1cec7}.dashboard-page{padding-top:40px}.expired-alert{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;margin-bottom:18px;padding:14px 17px;color:#fff;background:linear-gradient(100deg,#8f3e32,#a84e3e);border-radius:14px;box-shadow:0 10px 25px #7e362a21}.expired-alert-icon{display:grid;width:38px;height:38px;background:#ffffff21;border-radius:10px;place-items:center}.expired-alert strong{font-size:13px}.expired-alert p{margin-top:3px;color:#f2c9c2;font-size:10px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat-card{position:relative;min-height:148px;overflow:hidden;padding:18px 19px;background:var(--paper);border:1px solid #e2e4db;border-radius:16px}.stat-card:after{position:absolute;right:-20px;bottom:-35px;width:100px;height:100px;content:"";border:18px solid rgba(44,77,64,.04);border-radius:50%}.stat-icon{position:absolute;top:17px;right:17px;display:grid;width:36px;height:36px;color:var(--green);background:#edf0e8;border-radius:10px;place-items:center}.stat-valid .stat-icon{color:#377547;background:#e5f2df}.stat-expired .stat-icon{color:#a14539;background:#f8e8e4}.stat-offline .stat-icon{color:#716d61;background:#eeede7}.stat-value{margin-top:11px;font-family:Avenir Next,Arial,sans-serif;font-size:38px;font-weight:850;letter-spacing:-.06em;line-height:1}.stat-card>span{display:block;margin-top:12px;color:#3b4943;font-size:12px;font-weight:750}.stat-card>small{display:block;margin-top:5px;color:#919b96;font-size:9px}.dashboard-columns{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:16px;margin-top:17px}.category-overview,.expiring-panel,.recent-expired-panel{padding:21px}.category-bars{display:flex;flex-direction:column;gap:16px;margin-top:22px}.category-bar-row{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:8px 14px}.category-bar-label{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#53625b;font-size:11px}.category-bar-label .muted{color:#999f9b;text-decoration:line-through}.category-bar-label strong{color:var(--ink);font-size:12px}.category-bar-track{align-self:center;height:6px;overflow:hidden;background:#e8eae3;border-radius:999px}.category-bar-track span{display:block;height:100%;background:linear-gradient(90deg,var(--green-2),#7b9a6f);border-radius:inherit;transition:width .4s ease}.category-bar-row small{grid-column:2;color:#8d9892;font-size:9px}.dashboard-shortcuts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:22px;padding-top:18px;border-top:1px solid #e8e9e2}.dashboard-shortcuts a{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:11px;color:#65726c;background:#f3f4ee;border-radius:10px;font-size:10px;font-weight:650}.dashboard-shortcuts a:hover{color:var(--green);background:#edf0e5}.dashboard-shortcuts a span{display:grid;color:var(--green);place-items:center}.expiring-list{display:flex;flex-direction:column;margin-top:15px}.expiring-list a{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #eaebe4}.expiring-list a:last-child{border-bottom:0}.expiring-list img{width:40px;height:48px;object-fit:cover;border-radius:6px}.expiring-list div{min-width:0}.expiring-list strong{display:block;overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.expiring-list div span{display:block;margin-top:5px;color:#8a9590;font-size:9px}.expiring-list time{color:#a44f40;font-size:9px;font-weight:700}.all-clear{display:flex;min-height:180px;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#7c8d85}.all-clear svg{margin-bottom:5px;color:#5e8c67}.all-clear strong{color:#495950;font-size:12px}.all-clear span{font-size:9px}.recent-expired-panel,.data-table{margin-top:17px}.data-table-head,.data-table-row{display:grid;grid-template-columns:minmax(220px,2fr) minmax(100px,1fr) 80px 120px 86px;align-items:center;gap:14px}.data-table-head{padding:9px 12px;color:#8c9691;background:#eff0ea;border-radius:8px;font-size:9px;font-weight:750;letter-spacing:.04em}.data-table-row{min-height:59px;padding:8px 12px;border-bottom:1px solid #e9ebe4;color:#59665f;font-size:10px}.data-table-row:last-child{border-bottom:0}.table-material{display:flex;align-items:center;gap:9px;min-width:0}.table-material img{width:34px;height:40px;object-fit:cover;border-radius:5px}.table-material strong{overflow:hidden;color:var(--ink);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.date-cell{display:inline-flex;align-items:center;gap:5px}.status-badge{display:inline-flex;align-items:center;min-height:23px;padding:0 9px;border-radius:999px;font-size:9px;font-weight:750;white-space:nowrap}.status-badge.success{color:#2e6c40;background:#e5f1df}.status-badge.info{color:#3d6098;background:#e7edf8}.status-badge.danger{color:#9e4539;background:#f8e8e4}.status-badge.neutral{color:#686b65;background:#edede8}.status-badge.dark{color:#f0f1ed;background:#656b67}.filter-panel{display:flex;align-items:center;gap:12px;padding:12px;background:var(--paper);border:1px solid #e1e3da;border-radius:15px}.material-search{display:flex;align-items:center;gap:9px;flex:1;min-width:200px;height:42px;padding:0 12px;color:#89958f;background:#f4f5ef;border:1px solid #e5e6df;border-radius:9px}.material-search.compact{max-width:400px;height:40px}.material-search input{flex:1;min-width:0;color:var(--ink);background:transparent;border:0;outline:0;font-size:12px}.material-search button{display:grid;padding:3px;color:#78867f;background:transparent;border:0;place-items:center}.filter-selects{display:flex;gap:7px}.filter-selects label{position:relative;display:flex;align-items:center;min-height:42px;color:#829089;background:#fff;border:1px solid #dfe1d8;border-radius:9px}.filter-selects label>svg:first-child{margin-left:10px}.filter-selects select{min-width:105px;height:40px;padding:0 28px 0 3px;color:#495750;background:transparent;border:0;outline:0;appearance:none;font-size:10px;font-weight:650;cursor:pointer}.filter-selects label>svg:last-child{position:absolute;right:8px;pointer-events:none}.filter-result{display:flex;align-items:center;gap:8px;margin-left:auto;color:#89948e;font-size:10px;white-space:nowrap}.filter-result button{display:grid;width:32px;height:32px;color:#6e7c75;background:transparent;border:1px solid #e2e4dc;border-radius:8px;place-items:center}.material-library{margin-top:15px;overflow:hidden;background:var(--paper);border:1px solid #e1e3da;border-radius:16px;transition:opacity .2s}.material-library.is-refreshing,.log-groups.is-refreshing{opacity:.55}.library-table-head,.library-row{display:grid;grid-template-columns:minmax(250px,2.2fr) minmax(105px,.9fr) minmax(80px,.7fr) minmax(115px,.9fr) 80px 128px;align-items:center;gap:14px}.library-table-head{min-height:39px;padding:0 16px;color:#8a9690;background:#eff0ea;font-size:9px;font-weight:750;letter-spacing:.04em}.library-row{min-height:82px;padding:11px 16px;border-top:1px solid #e8eae3}.material-identity{display:flex;align-items:center;gap:12px;min-width:0}.thumbnail-button{position:relative;flex:0 0 auto;width:50px;height:58px;padding:0;overflow:hidden;background:#e6e5dd;border:0;border-radius:7px}.thumbnail-button img{width:100%;height:100%;object-fit:cover}.thumbnail-button span{position:absolute;inset:0;display:grid;color:#fff;background:#0f201a80;opacity:0;place-items:center;transition:opacity .16s}.thumbnail-button:hover span{opacity:1}.material-identity>div{min-width:0}.material-name-button{display:block;max-width:100%;padding:0;overflow:hidden;color:var(--ink);background:transparent;border:0;font-size:12px;font-weight:750;text-align:left;text-overflow:ellipsis;white-space:nowrap}.material-name-button:hover{color:var(--green-2)}.material-identity>div>span{display:block;margin-top:6px;color:#8a958f;font-size:9px}.library-category,.library-uploader,.library-expiry{min-width:0;color:#59665f;font-size:10px}.library-category strong{overflow:hidden;color:#46554e;font-size:10px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.library-uploader>span:last-child,.library-expiry>span:last-child{display:inline-flex;align-items:center;gap:4px}.table-label{display:none}.row-actions{display:flex;gap:4px}.row-actions button{display:grid;width:29px;height:29px;color:#6b7972;background:#f2f3ed;border:1px solid transparent;border-radius:7px;place-items:center}.row-actions button:hover{color:var(--green);background:#e9ede2;border-color:#dbe0d4}.row-actions button.danger-action:hover{color:#a43f35;background:#f9e9e5;border-color:#f3d5cf}.row-actions .mobile-action-toggle{display:none}.modal-backdrop{position:fixed;z-index:600;inset:0;display:flex;align-items:center;justify-content:center;padding:22px;background:#0f1b17a8;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);animation:fade-up .16s ease both}.modal-panel{display:flex;flex-direction:column;width:min(540px,100%);max-height:calc(100dvh - 44px);overflow:hidden;background:var(--paper);border:1px solid rgba(255,255,255,.7);border-radius:20px;box-shadow:0 35px 90px #091a144a}.modal-header{display:flex;flex:0 0 auto;align-items:flex-start;justify-content:space-between;gap:20px;padding:21px 22px 16px;border-bottom:1px solid #e6e8e0}.modal-header h2{margin-top:6px;font-size:21px;letter-spacing:-.035em}.icon-button{display:grid;flex:0 0 auto;width:35px;height:35px;color:#63716a;background:#eceee7;border:0;border-radius:9px;place-items:center}.modal-content{padding:20px 22px 22px;overflow-y:auto;overscroll-behavior:contain}.material-form-modal{width:min(680px,100%)}.user-form-modal{width:min(620px,100%)}.small-form-modal{width:min(470px,100%)}.material-detail-modal{width:min(880px,100%)}.confirm-modal{width:min(460px,100%)}.material-form{display:flex;flex-direction:column}.image-upload-area{margin-bottom:19px}.image-preview{position:relative;height:220px;overflow:hidden;background:#e9e9e1;border-radius:13px}.image-preview img{width:100%;height:100%;object-fit:contain}.image-preview button{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 11px;color:#fff;background:#172f27d1;border:0;border-radius:8px;font-size:10px;font-weight:650;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.image-preview-actions{position:absolute;right:10px;bottom:10px;display:flex;gap:6px}.upload-placeholder{display:flex;width:100%;min-height:185px;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#56665f;background:linear-gradient(90deg,#edefe7 50%,transparent 50%),linear-gradient(#edefe7 50%,transparent 50%);background-color:#f6f6f1;background-size:12px 2px,2px 12px;background-repeat:repeat-x,repeat-y;background-position:bottom,right;border:1px dashed #cdd3c8;border-radius:13px}.upload-source-actions{display:flex;gap:7px;margin-top:9px}.upload-source-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:0 12px;color:#52645b;background:#fff;border:1px solid #d5dbd1;border-radius:9px;font-size:10px;font-weight:700}.upload-source-actions button:first-child{color:#fff;background:var(--green);border-color:var(--green)}.upload-placeholder>span{display:grid;width:50px;height:50px;margin-bottom:3px;color:var(--green);background:var(--lime);border-radius:14px;place-items:center}.upload-placeholder strong{font-size:13px}.upload-placeholder small{color:#8b9690;font-size:10px}.upload-hints{display:flex;gap:16px;margin-top:8px;color:#85918b;font-size:9px}.upload-hints span{display:inline-flex;align-items:center;gap:4px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid.single-column{grid-template-columns:1fr}.form-grid .full{grid-column:1 / -1}.type-choice{min-width:0;margin:0;padding:0;border:0}.type-choice legend{margin-bottom:8px;color:#3d4b45;font-size:12px;font-weight:700}.type-choice>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.type-choice button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:43px;color:#617069;background:#fff;border:1px solid #dadfd5;border-radius:9px;font-size:12px;font-weight:650}.type-choice button.active{color:var(--green);background:var(--lime-soft);border-color:#b8cf62}.category-picker>p{margin:-3px 0 10px;color:#89958f;font-size:10px}.category-checkboxes{display:grid;grid-template-columns:1fr 1fr;gap:7px}.category-checkboxes button{display:flex;align-items:center;gap:9px;min-height:42px;padding:0 11px;color:#57665f;background:#fff;border:1px solid #dde0d7;border-radius:9px;font-size:11px;text-align:left}.category-checkboxes button.selected{color:var(--green);background:#f0f5dc;border-color:#c9d88e}.checkbox{display:grid;flex:0 0 auto;width:17px;height:17px;color:#fff;background:#f5f6f1;border:1px solid #cfd4ca;border-radius:4px;place-items:center}.selected .checkbox{background:var(--green);border-color:var(--green)}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px;background:#f2f3ed;border-radius:10px}.toggle-row div{display:flex;flex-direction:column;gap:3px}.toggle-row strong{font-size:12px}.toggle-row span{color:#89958f;font-size:10px}.toggle-row>button{position:relative;flex:0 0 auto;width:43px;height:24px;padding:0;background:#bbc1bb;border:0;border-radius:999px;transition:background .18s}.toggle-row>button span{position:absolute;top:3px;left:3px;width:18px;height:18px;background:#fff;border-radius:50%;box-shadow:0 2px 4px #00000029;transition:transform .18s}.toggle-row>button.on{background:var(--green-2)}.toggle-row>button.on span{transform:translate(19px)}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.sticky-actions{position:sticky;bottom:-22px;margin:20px -22px -22px;padding:14px 22px 16px;background:#fbfbf5f5;border-top:1px solid #e7e8e1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.confirm-content>p{color:#5f6c66;font-size:12px;line-height:1.75}.confirm-icon{display:grid;width:48px;height:48px;margin-bottom:15px;border-radius:13px;place-items:center}.confirm-icon.danger{color:#a94337;background:#f7e5e1}.confirm-icon.warning{color:#8b6432;background:#f6ebd9}.confirm-material{display:flex;align-items:center;gap:10px;margin-top:15px;padding:10px;background:#f0f1eb;border-radius:10px}.confirm-material img{width:38px;height:46px;object-fit:cover;border-radius:5px}.confirm-material div{min-width:0}.confirm-material strong{display:block;overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.confirm-material span{display:block;margin-top:5px;color:#88938d;font-size:9px}.material-detail{display:grid;grid-template-columns:minmax(250px,.82fr) minmax(310px,1.18fr);gap:24px}.detail-image{display:flex;align-items:center;justify-content:center;min-height:390px;padding:12px;overflow:hidden;background:#e9e9e1;border-radius:13px}.detail-image img{width:100%;max-height:480px;object-fit:contain;border-radius:5px}.detail-copy{display:flex;min-width:0;flex-direction:column;justify-content:center}.detail-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.detail-title-row h2{margin-top:6px;font-size:24px;letter-spacing:-.04em;line-height:1.25}.detail-facts{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:20px;overflow:hidden;background:#e3e5dc;border:1px solid #e3e5dc;border-radius:11px}.detail-facts div{display:flex;flex-direction:column;gap:5px;padding:11px;background:#fff}.detail-facts span{color:#8c9791;font-size:9px}.detail-facts strong{font-size:10px;font-weight:650}.detail-notes{margin-top:14px;padding:12px;color:#5f6d66;background:#f0f1ea;border-radius:9px;font-size:10px;line-height:1.7}.permission-note{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:14px 16px;color:#4f685d;background:#eaf0df;border:1px solid #d8e1c4;border-radius:12px}.permission-note svg{flex:0 0 auto;color:#3c7355}.permission-note p{font-size:10px;line-height:1.55}.permission-note strong{margin-right:10px;color:#294b3d;font-size:11px}.list-toolbar,.log-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0}.list-toolbar>span,.log-toolbar>span{color:#8a9590;font-size:10px}.user-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.user-card{padding:17px;background:var(--paper);border:1px solid #e0e3da;border-radius:15px}.user-card.disabled{background:#f1f1ec;opacity:.78}.user-card-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px}.user-avatar{position:relative;display:grid;width:42px;height:42px;color:#2d5647;background:#dcebc7;border-radius:12px;font-size:16px;font-weight:800;place-items:center}.user-avatar.admin{color:#fff;background:var(--green)}.user-avatar>span{position:absolute;right:-2px;bottom:-2px;width:11px;height:11px;background:#adbab3;border:2px solid var(--paper);border-radius:50%}.user-avatar>span.online{background:#6b9f5e}.user-identity{min-width:0}.user-identity>div{display:flex;align-items:center;gap:6px}.user-identity h2{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.user-identity>span{display:block;margin-top:4px;color:#8b9690;font-size:9px}.self-tag{flex:0 0 auto;padding:2px 5px;color:#508063;background:#e9f0dc;border-radius:4px;font-size:7px}.role-badge{display:inline-flex;align-items:center;gap:4px;min-height:23px;padding:0 7px;color:#51665b;background:#edf0e8;border-radius:6px;font-size:8px;font-weight:700;white-space:nowrap}.role-badge.main{color:#365d4c;background:var(--lime-soft)}.user-card-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;padding:10px 0;color:#818d87;border-top:1px solid #e8eae3;border-bottom:1px solid #e8eae3;font-size:8px}.user-card-meta span{display:inline-flex;align-items:center;gap:4px}.user-categories{min-height:66px;padding:12px 0 10px}.meta-label{display:block;margin-bottom:8px;color:#8b9690;font-size:8px}.category-chip-list{display:flex;flex-wrap:wrap;gap:5px}.category-chip-list>span,.all-categories-chip{display:inline-flex;align-items:center;min-height:23px;padding:0 8px;color:#52645b;background:#edefe8;border-radius:6px;font-size:8px}.all-categories-chip{color:#496348;background:#e9f0dc}.no-category{color:#a1574d;font-size:9px}.user-card-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:11px;border-top:1px solid #e8eae3}.user-danger-actions{display:flex;align-items:center;gap:3px;margin-left:auto}.text-action{display:inline-flex;align-items:center;gap:5px;padding:6px;background:transparent;border:0;font-size:9px;font-weight:650}.danger-text{color:#a54b3f!important}.success-text{color:#42784f!important}.category-summary{display:flex;align-items:center;gap:22px;margin:-3px 0 18px;color:#7c8983;font-size:10px}.category-summary span{display:inline-flex;align-items:center;gap:6px}.category-management-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.category-management-card{position:relative;min-height:242px;padding:18px;overflow:hidden;background:var(--paper);border:1px solid #e0e3da;border-radius:16px}.category-management-card.inactive{opacity:.65}.category-card-index{position:absolute;right:16px;bottom:46px;color:#eef0e8;font-family:Arial,sans-serif;font-size:85px;font-weight:900;letter-spacing:-.09em;line-height:1}.category-card-top{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between}.category-folder-icon{display:grid;width:42px;height:42px;color:var(--green);background:var(--lime);border-radius:11px;place-items:center}.category-state{padding:4px 7px;color:#767e79;background:#ecece6;border-radius:999px;font-size:8px}.category-state.active{color:#327044;background:#e3f0dd}.category-management-card h2{position:relative;z-index:1;margin-top:16px;font-size:17px;letter-spacing:-.03em}.category-management-card>p{position:relative;z-index:1;min-height:36px;margin-top:8px;color:#7a8780;font-size:9px;line-height:1.6}.category-stats{position:relative;z-index:1;display:flex;gap:28px;margin-top:14px}.category-stats div{display:flex;align-items:baseline;gap:5px}.category-stats strong{font-size:16px}.category-stats span{color:#89948e;font-size:8px}.category-card-actions{position:absolute;z-index:2;right:16px;bottom:14px;left:16px;display:flex;justify-content:space-between;padding-top:11px;border-top:1px solid #e7e9e2}.category-card-actions button{display:inline-flex;align-items:center;gap:5px;padding:4px 2px;color:#63716a;background:transparent;border:0;font-size:9px}.log-total{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;color:#64736c;background:#edefe8;border:1px solid #e0e2d9;border-radius:9px;font-size:10px}.log-groups{display:flex;flex-direction:column;gap:24px;transition:opacity .2s}.log-group{display:grid;grid-template-columns:90px minmax(0,1fr);gap:19px}.log-date{position:relative;padding-top:13px;color:#88938e;font-size:9px;text-align:right}.log-date i{position:absolute;top:19px;right:-24px;z-index:1;width:9px;height:9px;background:var(--lime);border:2px solid var(--canvas);border-radius:50%;box-shadow:0 0 0 1px #c9d76f}.log-group{position:relative}.log-group:before{position:absolute;top:24px;bottom:-29px;left:105px;width:1px;content:"";background:#d8dcd2}.log-group:last-child:before{display:none}.log-entries{overflow:hidden;background:var(--paper);border:1px solid #e0e3da;border-radius:14px}.log-entry{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:73px;padding:13px 16px;border-bottom:1px solid #e7e9e2}.log-entry:last-child{border-bottom:0}.log-icon{display:grid;width:36px;height:36px;border-radius:10px;place-items:center}.log-icon.green{color:#3f734c;background:#e5f0df}.log-icon.blue{color:#4b6b9d;background:#e8edf6}.log-icon.orange{color:#97603a;background:#f6eadc}.log-icon.red{color:#a34b3f;background:#f7e6e2}.log-icon.purple{color:#745b91;background:#eee9f4}.log-icon.teal{color:#397470;background:#e2f0ee}.log-icon.neutral{color:#6d746f;background:#eceee8}.log-content{min-width:0}.log-content>div{display:flex;align-items:center;gap:7px}.log-content strong{font-size:11px}.operation-tag{padding:2px 5px;border-radius:4px;font-size:7px;font-weight:700}.operation-tag.green{color:#3f734c;background:#edf4e9}.operation-tag.blue{color:#4b6b9d;background:#edf1f8}.operation-tag.orange{color:#97603a;background:#f8eee3}.operation-tag.red{color:#a34b3f;background:#f9ece9}.operation-tag.purple{color:#745b91;background:#f1edf6}.operation-tag.teal{color:#397470;background:#e9f3f2}.operation-tag.neutral{color:#6d746f;background:#f0f1ec}.log-content p{margin-top:6px;overflow:hidden;color:#69766f;font-size:9px;line-height:1.5;text-overflow:ellipsis;white-space:nowrap}.log-entry time{color:#96a09b;font-family:Avenir Next,Arial,sans-serif;font-size:8px}.not-found-page{display:flex;min-height:100vh;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:30px;text-align:center}.not-found-page>span{color:#d6e497;font-family:Arial,sans-serif;font-size:110px;font-weight:900;letter-spacing:-.08em;line-height:.85}.not-found-page h1{font-size:28px}.not-found-page p{margin-bottom:12px;color:var(--ink-soft);font-size:12px}@media(max-width:1180px){.public-material-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.library-table-head,.library-row{grid-template-columns:minmax(230px,2fr) minmax(100px,.9fr) minmax(110px,.9fr) 75px 125px}.library-uploader{display:none}.filter-selects label:first-child select{min-width:95px}.category-management-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:980px){.sidebar{width:202px}.admin-main{margin-left:202px}.dashboard-columns{grid-template-columns:1fr}.filter-panel{flex-wrap:wrap}.material-search{flex-basis:calc(100% - 250px)}.filter-result{flex:1 0 auto;justify-content:flex-end}.filter-selects{order:3;width:100%}.filter-selects label{flex:1}.filter-selects select{width:100%}.user-grid{grid-template-columns:1fr}}@media(max-width:820px){.public-header{width:calc(100% - 30px);padding:16px 0 13px}.live-indicator{display:none}.catalog-section{width:calc(100% - 30px);padding-top:22px}.catalog-heading h2{font-size:25px}.public-material-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.material-card-body{padding:12px}.material-card-body h3{font-size:13px}.material-card-footer{margin-top:10px;padding-top:9px;font-size:9px}.material-card-footer svg{display:none}.public-footer{width:calc(100% - 30px);flex-wrap:wrap;padding-bottom:calc(26px + env(safe-area-inset-bottom))}.public-footer p{flex:1;text-align:right}.public-footer>span{display:none}.preview-backdrop{align-items:flex-end;padding:0}.preview-panel{display:block;width:100%;max-height:92dvh;overflow-y:auto;border-radius:22px 22px 0 0}.preview-image{max-height:54dvh;padding:20px}.preview-image img{max-height:48dvh}.preview-detail{padding:25px 22px calc(30px + env(safe-area-inset-bottom))}.preview-detail h2{font-size:23px}.login-page{display:block;background:#f7f7f0}.login-showcase{display:none}.login-form-side{justify-content:flex-start;min-height:100dvh;padding:22px 22px 35px}.login-mobile-brand{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:auto}.login-mobile-brand>a:last-child{color:#65736c;font-size:11px}.login-card{margin:55px 0 auto}.login-copyright{margin-top:30px}.sidebar{display:none}.admin-main{margin-left:0;padding-top:63px}.mobile-admin-header{position:fixed;z-index:45;top:0;right:0;left:0;display:flex;align-items:center;justify-content:space-between;height:calc(63px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 16px 0;background:#fbfbf5f0;border-bottom:1px solid #e1e3da;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.mobile-admin-header .brand{transform:scale(.88);transform-origin:left center}.mobile-user-chip,.mobile-header-tools{display:flex;align-items:center;gap:7px}.mobile-logout-button{display:inline-flex;align-items:center;justify-content:center;gap:3px;min-height:32px;padding:0 8px;color:#9d493f;background:#fbebe7;border:1px solid #f1d7d1;border-radius:9px;font-size:8px;font-weight:700}.mobile-user-chip>span{display:grid;width:31px;height:31px;color:var(--green);background:var(--lime);border-radius:9px;font-size:12px;font-weight:800;place-items:center}.mobile-user-chip div{display:flex;flex-direction:column;gap:2px}.mobile-user-chip strong{font-size:10px}.mobile-user-chip small{color:#85918b;font-size:8px}.mobile-bottom-nav{position:fixed;z-index:60;right:0;bottom:0;left:0;display:flex;min-height:calc(60px + env(safe-area-inset-bottom));padding:7px 8px env(safe-area-inset-bottom);background:#fbfbf5f5;border-top:1px solid #dfe2d8;box-shadow:0 -8px 30px #182d240f;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.mobile-bottom-nav a{display:flex;flex:1;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#7c8982;border-radius:9px;font-size:8px}.mobile-bottom-nav a.active{color:var(--green);background:#edf2dc}.mobile-bottom-nav .mobile-public-shortcut{color:#66746d}.admin-page{padding:22px 16px calc(88px + env(safe-area-inset-bottom))}.admin-page-header{display:block;margin-bottom:20px}.admin-page-header h1{font-size:29px}.admin-page-header p{font-size:11px}.header-actions{margin-top:17px}.header-actions .primary-button,.header-actions .secondary-button,.admin-page-header>.primary-button{flex:1}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat-card{min-height:132px;padding:15px}.stat-value{font-size:31px}.stat-icon{top:13px;right:13px;width:32px;height:32px}.dashboard-columns{gap:12px}.category-overview,.expiring-panel,.recent-expired-panel{padding:17px}.category-bar-row{grid-template-columns:1fr 85px}.dashboard-shortcuts{gap:6px}.expired-alert{align-items:flex-start;padding:13px}.expired-alert p{line-height:1.5}.expired-alert>svg{margin-top:8px}.desktop-table .data-table-head{display:none}.data-table-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px 4px}.data-table-row>span:nth-child(2),.data-table-row>span:nth-child(3),.data-table-row>span:nth-child(4){display:none}.filter-panel{display:grid;grid-template-columns:1fr auto;padding:10px}.material-search{grid-column:1 / -1;min-width:0}.filter-selects{grid-column:1 / -1;order:initial;overflow-x:auto}.filter-selects label{flex:1 0 auto}.filter-result{grid-column:1 / -1;justify-content:flex-end;margin-top:-3px}.library-table-head{display:none}.library-rows{display:flex;flex-direction:column;gap:10px;padding:10px;background:#f2f3ed}.material-library{overflow:visible;background:transparent;border:0}.library-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;min-height:0;padding:12px;background:var(--paper);border:1px solid #e0e3da;border-radius:13px}.material-identity{grid-column:1 / -1;padding-bottom:9px;border-bottom:1px solid #e8eae3}.thumbnail-button{width:50px;height:58px}.library-category,.library-expiry{display:flex;flex-direction:column;gap:5px;padding-left:3px}.library-category{grid-column:1}.library-expiry{grid-column:2;align-items:flex-end;text-align:right}.library-uploader{display:none}.table-label{display:block;color:#939d98;font-size:8px}.library-status{position:absolute;top:44px;right:13px}.row-actions{grid-column:1 / -1;justify-content:flex-end;padding-top:8px;border-top:1px solid #e8eae3}.row-actions button{width:35px;height:33px}.row-actions .mobile-action-toggle{display:none}.modal-backdrop{align-items:flex-end;padding:0}.modal-panel{width:100%;max-height:93dvh;border-radius:20px 20px 0 0}.modal-header{padding:18px 18px 14px}.modal-content{padding:17px 18px calc(22px + env(safe-area-inset-bottom))}.material-form,.user-form-modal,.small-form-modal{width:100%}.form-grid{gap:14px}.image-preview{height:195px}.upload-placeholder{min-height:155px}.sticky-actions{bottom:calc(-22px - env(safe-area-inset-bottom));margin:20px -18px calc(-22px - env(safe-area-inset-bottom));padding:12px 18px calc(12px + env(safe-area-inset-bottom))}.material-detail{display:block}.detail-image{min-height:0;max-height:44dvh}.detail-image img{max-height:41dvh}.detail-copy{display:block;margin-top:19px}.detail-title-row h2{font-size:21px}.permission-note{align-items:flex-start}.permission-note strong{display:block;margin:0 0 3px}.list-toolbar{display:block}.material-search.compact{max-width:none}.list-toolbar>span{display:block;margin-top:7px;text-align:right}.category-management-grid{grid-template-columns:1fr}.category-management-card{min-height:230px}.category-summary{gap:12px;overflow-x:auto;white-space:nowrap}.log-toolbar{display:block}.log-toolbar>span{display:block;margin-top:7px;text-align:right}.log-group{grid-template-columns:1fr;gap:7px}.log-date{padding:0;text-align:left;font-weight:700}.log-date i,.log-group:before{display:none}.log-entry{grid-template-columns:auto minmax(0,1fr);align-items:flex-start;min-height:68px;padding:12px}.log-entry time{position:absolute;right:12px;margin-top:0}.log-content>div{padding-right:57px}.log-content p{padding-right:20px;white-space:normal}}@media(max-width:540px){.public-header .brand{transform:scale(.86);transform-origin:left center}.login-entry{min-height:34px;padding:0 10px}.login-entry span{display:none}.catalog-heading{align-items:flex-end}.refresh-button{width:38px;min-height:38px;padding:0;justify-content:center;font-size:0}.public-search{height:48px}.type-tabs{width:100%}.type-tabs button{flex:1}.category-pills{margin-bottom:16px}.material-cover{aspect-ratio:4 / 5}.material-type-chip{top:8px;left:8px}.expiry-chip{right:8px;bottom:8px}.public-tip{align-items:flex-start}.public-tip strong{display:block;margin:0 0 3px}.preview-facts{grid-template-columns:1fr}.preview-facts span:nth-child(3){grid-column:auto}.login-form-side{padding:18px 18px 30px}.login-card{margin-top:42px}.login-heading h2{font-size:28px}.demo-buttons{grid-template-columns:1fr}.admin-page{padding-right:12px;padding-left:12px}.mobile-bottom-nav a{font-size:7px}.stat-card>small{font-size:8px}.header-actions{display:grid;grid-template-columns:1fr 1fr}.admin-page-header>.primary-button{width:100%;margin-top:16px}.dashboard-shortcuts a{padding:9px 7px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.category-checkboxes{grid-template-columns:1fr}.modal-actions{display:grid;grid-template-columns:1fr 1fr}.detail-facts{grid-template-columns:1fr 1fr}.user-card{padding:14px}.user-card-top{grid-template-columns:auto minmax(0,1fr)}.user-card-top .role-badge{grid-column:2;width:fit-content}.user-card-meta{align-items:flex-start;flex-direction:column}.category-management-card{min-height:218px}.log-entry time{font-size:7px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
