:root{--navy:#07192e;--navy2:#102b49;--cyan:#1bc9dd;--cyan-dark:#048fa9;--ink:#15263f;--muted:#657a91;--line:#dfeaf2;--bg:#f3f7fb;--panel:#fff;--shadow:0 16px 42px rgba(17,42,77,.07);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);font-size:15px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}p{line-height:1.65}input,textarea,select{border:1px solid #cfdeea;border-radius:11px;background:#fff;padding:12px 14px;width:100%;color:#182b42;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--cyan-dark);box-shadow:0 0 0 3px rgba(27,201,221,.16)}input[type=checkbox],input[type=range]{width:auto}label{display:flex;flex-direction:column;font-weight:650;font-size:.91rem;gap:7px;margin:0 0 16px}code{background:#edf4f9;padding:2px 5px;border-radius:4px;overflow-wrap:anywhere}a:focus-visible,button:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}.ico{display:inline-flex;font-size:1.25em;line-height:1;min-width:1.1em;align-items:center;justify-content:center}
.site-wrap{max-width:1530px;min-height:100vh;margin:0 auto;background:white;box-shadow:0 0 100px rgba(14,39,72,.08)}.topbar{display:flex;align-items:center;gap:20px;justify-content:space-between;background:var(--navy);height:84px;padding:0 5.2%;position:relative;z-index:5}.brand{font-weight:820;font-size:1.65rem;letter-spacing:-.06em;white-space:nowrap;color:#fff}.brand span,.footer strong span{color:var(--cyan)}.public-nav{display:flex;align-items:center;gap:24px}.public-nav>a{font-size:.88rem;color:#e8f4ff;font-weight:650;transition:color .15s}.public-nav>a:hover,.public-nav>a.active{color:#48e2ee}.public-nav .private-button{padding:11px 16px;border:1px solid rgba(130,216,239,.35);background:#f2fbff;color:var(--navy);border-radius:9px;display:inline-flex;gap:7px;align-items:center}.public-nav .private-button:hover{color:var(--navy);background:white}.menu-toggle{display:none;background:none;border:0;color:#fff;font-size:1.8rem}.hero{background:radial-gradient(ellipse at 94% 9%,#175077 0%,transparent 44%),linear-gradient(118deg,#081b34 20%,#0b2a48 95%);color:white;min-height:452px;padding:65px 5.2%;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.8fr);gap:50px;align-items:center;overflow:hidden}.hero-kicker,.eyebrow{color:#009fbb;letter-spacing:.14em;font-size:.73rem;font-weight:900}.hero-kicker{color:#58e4ec;letter-spacing:.115em;display:flex;align-items:center;gap:9px}.glow-dot{height:8px;width:8px;border-radius:50%;background:#22e9db;box-shadow:0 0 14px #20f3e8}.hero h1{font-size:clamp(2.3rem,4.4vw,4.3rem);font-weight:825;line-height:1.09;max-width:850px;letter-spacing:-.055em;margin:18px 0 20px}.hero h1 span,.page-banner h1 span{color:var(--cyan)}.hero-copy>p{font-size:1.08rem;color:#d3e4f1;max-width:615px}.searchbox{display:flex;align-items:center;gap:12px;background:white;color:var(--ink);padding:7px 8px 7px 15px;max-width:680px;border-radius:12px;margin-top:26px;box-shadow:0 16px 35px rgba(0,0,0,.18)}.searchbox>span{font-size:1.7rem;color:#607d98}.searchbox input{border:0;padding:10px 2px;min-width:40px;flex:1;box-shadow:none}.searchbox input:focus{border:0;box-shadow:none}.searchbox button,.btn-primary{background:linear-gradient(135deg,#00a9c4,#087da9);border:1px solid transparent;color:#fff;font-weight:750;border-radius:9px;padding:12px 18px;box-shadow:0 6px 15px rgba(0,158,197,.13)}.searchbox button:hover,.btn-primary:hover{background:linear-gradient(135deg,#0093af,#00688c)}.hero-badges{display:flex;flex-wrap:wrap;gap:20px;margin-top:29px;color:#afccdf;font-size:.85rem}.hero-preview{min-height:340px;position:relative;display:flex;align-items:center;justify-content:center}.preview-window{position:relative;width:92%;border:1px solid #3879a0;background:linear-gradient(145deg,#0f3857,#0a1831);border-radius:17px;transform:rotate(-5deg);box-shadow:0 24px 60px rgba(0,0,0,.36);padding:20px;overflow:hidden}.preview-top{display:flex;justify-content:space-between;color:#6ebcdd;font-size:.7rem;letter-spacing:.1em}.preview-top span:first-child{color:#e06d84}.preview-lines{display:flex;gap:8px;flex-direction:column;margin-top:25px}.preview-lines i{height:8px;border-radius:5px;background:linear-gradient(90deg,#37d7e4 25%,#2d628c 25%,#163755 85%,transparent 85%)}.preview-lines i:nth-child(2){width:85%;margin-left:8%}.preview-lines i:nth-child(3){width:70%}.preview-lines i:nth-child(4){width:62%;margin-left:15%}.preview-lines i:nth-child(5){width:78%}.preview-chart{height:92px;display:flex;align-items:end;gap:12px;justify-content:center;margin-top:24px;border-bottom:1px solid #4e8aab}.preview-chart b{background:linear-gradient(#1de2ed,#107eae);width:11%;height:40%;border-radius:5px 5px 0 0}.preview-chart b:nth-child(2){height:72%}.preview-chart b:nth-child(3){height:55%}.preview-chart b:nth-child(4){height:88%}.preview-chart b:nth-child(5){height:61%}.preview-chart b:nth-child(6){height:96%}.preview-chart b:nth-child(7){height:76%}.preview-bottom{display:flex;justify-content:space-between;margin-top:14px;color:#7aaecf;font-size:.7rem}.preview-bottom span{color:#55eed6}.floating-chip{position:absolute;background:#fff;color:#123350;border-radius:11px;padding:10px 18px;box-shadow:0 9px 24px rgba(0,0,0,.26);font-weight:750;font-size:.85rem}.chip-a{right:-12px;top:22px}.chip-b{bottom:5px;left:-5px}
.main-section{padding:65px 5.2% 10px}.last-section{padding-bottom:85px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:25px}.section-head h2{font-size:1.9rem;letter-spacing:-.035em;margin:7px 0 3px}.section-head p{color:var(--muted);margin:0}.section-more{font-size:.86rem;color:#097eac;font-weight:760;white-space:nowrap}.category-row{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-bottom:25px}.category-row a{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #dceaf5;border-radius:12px;min-height:97px;font-size:.82rem;font-weight:750;background:#f8fbfe;box-shadow:0 6px 16px rgba(23,46,80,.04);transition:transform .2s,box-shadow .2s}.category-row a span{color:#0593bc;font-size:1.8rem;margin-bottom:8px}.category-row a:hover,.card:hover{transform:translateY(-3px);box-shadow:0 15px 35px rgba(20,73,112,.1)}.cards-grid{display:grid;gap:18px}.resource-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.tool-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.card{border:1px solid #dbe8f1;border-radius:15px;background:#fff;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s;min-width:0}.resource-card{padding:24px;min-height:215px;display:flex;flex-direction:column}.card-emoji{color:#08a9c8;font-size:2rem}.micro-tag{color:#0b87a6;font-weight:750;text-transform:uppercase;font-size:.7rem;letter-spacing:.06em}.resource-card h3,.tool-card h3,.project-card h3{font-size:1.1rem;letter-spacing:-.015em;margin:8px 0 7px}.resource-card p,.tool-card p,.project-card p{font-size:.88rem;color:var(--muted);margin:0 0 16px}.resource-card>a{font-size:.86rem;color:#027fa4;font-weight:750;margin-top:auto}.resource-card>a span{margin-left:5px}.tool-card{padding:26px 21px;min-height:206px;position:relative}.tool-icon{display:flex;align-items:center;color:#019ec5;font-weight:750;font-size:2.3rem;height:51px}.card-arrow{position:absolute;bottom:17px;right:20px;color:#0792bc;font-size:1.2rem}.project-card{overflow:hidden}.project-visual{height:143px;background:radial-gradient(circle at 70% 20%,#18b9d2 0%,transparent 28%),linear-gradient(145deg,#142a62,#092338 76%);display:flex;align-items:center;padding:32px;position:relative}.project-visual>span{color:#8dedfa;font-size:4rem;font-weight:650;position:relative;z-index:1}.project-orbits{width:170px;height:170px;border-radius:50%;border:24px solid rgba(37,197,220,.12);position:absolute;right:-12px;top:7px}.project-card:nth-child(2) .project-visual{background:linear-gradient(110deg,#413b9a,#125e8b)}.project-card:nth-child(3) .project-visual{background:linear-gradient(110deg,#174e64,#0a2543)}.project-body{padding:24px}.footer{background:#0a1e34;color:#c6d7e6;padding:35px 5.2%;display:flex;justify-content:space-between;gap:25px}.footer strong{color:white;font-size:1.25rem;letter-spacing:-.04em}.footer p{color:#99b2c7;font-size:.86rem;margin:6px 0 0}.footer-right{display:flex;align-items:center;flex-wrap:wrap;gap:22px;font-size:.83rem}.footer a:hover{color:#41deea}
.inner-main{padding:40px 5.2% 90px;min-height:65vh}.page-banner{border-radius:19px;padding:53px 5%;background:linear-gradient(115deg,#071b35,#174663);color:white;margin-bottom:35px;position:relative;overflow:hidden}.page-banner:after{content:"";position:absolute;width:350px;height:350px;right:-100px;top:-190px;border:70px solid rgba(25,206,223,.12);border-radius:50%}.page-banner .eyebrow{color:#4ae3e8}.page-banner h1{font-size:clamp(2rem,3.5vw,3.3rem);letter-spacing:-.052em;margin:12px 0}.page-banner p{color:#c7d7e5;max-width:700px;font-size:1.02rem;margin:0}.filterbar{display:flex;gap:12px;margin-bottom:20px}.filterbar input{flex:1}.filterbar select{max-width:255px}.result-count{color:var(--muted);font-size:.9rem}.empty-state{border:1px dashed #b5cfdf;border-radius:15px;padding:55px;text-align:center;color:var(--muted);margin-top:18px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.about-card{padding:35px}.round-ico{display:inline-flex;align-items:center;justify-content:center;border-radius:15px;width:55px;height:55px;background:#dcf5fa;color:#0097b3;font-size:1.35rem;font-weight:850}.about-card h2{margin:19px 0 10px}.about-card p{color:var(--muted)}.about-card a,.text-link{color:#027fa8;text-decoration:underline;text-underline-offset:3px}
.tool-selector{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:22px}.tool-selector a{border:1px solid #d5e7f0;border-radius:8px;padding:11px 15px;background:#fff;color:#35556b;font-weight:700;font-size:.87rem}.tool-selector a.selected{background:#0b2d4a;color:white;border-color:#0b2d4a}.tool-workspace{padding:35px;max-width:900px}.tool-workspace>h2{font-size:1.65rem;margin-bottom:5px}.tool-workspace>p{color:var(--muted)}.tool-workspace input[type=range]{width:100%;accent-color:#008bb3}.check-row,.form-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:15px 0}.check-row label,.checkbox-line{display:flex;flex-direction:row;align-items:center;gap:8px;margin:0 0 12px;font-weight:650}.check-row input,.checkbox-line input{accent-color:#0499b4}.output-row{display:flex;gap:10px;margin:18px 0}.output-row input{font-family:ui-monospace,Consolas,monospace}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:9px;padding:11px 17px;font-weight:750;border:1px solid transparent;font-size:.88rem;gap:6px}.btn-muted{background:#edf4f8;color:#123a56;border-color:#d2e0e9}.btn-muted:hover{background:#ddebf3}.btn-danger{background:#fff3f3;color:#ad3636;border-color:#f5cdcd}.btn-danger:hover{background:#ffe0e0}.btn-sm{font-size:.76rem;padding:7px 10px}.full{width:100%}.privacy-note{border-top:1px solid var(--line);padding-top:18px;margin-top:30px;font-size:.83rem;color:#5d7f95}.tool-output{margin-top:20px;background:#f1f7fa;padding:18px;border-radius:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.qr-output{min-height:18px;margin:15px 0;display:flex;justify-content:center;align-items:center}.qr-output svg{max-width:100%;border:1px solid var(--line);border-radius:8px}.is-hidden{display:none!important}
.admin-shell{display:grid;grid-template-columns:265px minmax(0,1fr);min-height:100vh;background:#f2f6fb}.sidebar{background:linear-gradient(165deg,#081c36,#092642 78%,#075171);color:#fff;min-height:100vh;display:flex;flex-direction:column;padding:28px 15px;gap:18px}.sidebar-brand{font-size:1.4rem;padding:0 14px}.side-caption{letter-spacing:.15em;color:#648eaa;font-size:.65rem;font-weight:800;padding:35px 14px 5px}.sidebar nav{display:flex;flex-direction:column;gap:7px}.side-link{display:flex;align-items:center;gap:15px;padding:13px 14px;color:#d7e4f0;border-radius:9px;font-weight:680;font-size:.91rem}.side-link:hover{background:rgba(49,179,215,.15)}.side-link.selected{background:linear-gradient(105deg,#0686a9,#08a4c1);color:#fff;box-shadow:0 7px 15px rgba(5,165,208,.2)}.side-bottom{margin-top:auto;padding:20px 14px;color:#b9d3e6;display:grid;gap:18px;font-size:.85rem}.side-logout{border:0;background:transparent;color:#cae1ed;padding:0;text-decoration:underline;text-underline-offset:4px;font-size:.85rem}.admin-main{min-width:0}.admin-top{height:70px;border-bottom:1px solid #e0e8f1;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 3%;color:#58758b;font-size:.8rem}.user-name{color:#17304a;font-weight:800}.dot-good{color:#13b57b}.admin-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:35px 0 26px}.admin-heading h1{font-size:clamp(1.7rem,2.6vw,2.55rem);line-height:1.18;letter-spacing:-.044em;margin:8px 0 6px}.admin-heading p{color:var(--muted);margin:0}.admin-main>.admin-heading,.admin-main>.stat-grid,.admin-main>.private-columns,.admin-main>.security-grid,.admin-main>.panel{margin-left:3%;margin-right:3%}.status-pill{white-space:nowrap;background:#e2f9ee;color:#19805d;font-weight:800;border-radius:30px;padding:8px 14px;font-size:.78rem}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:22px}.stat{background:white;border:1px solid #dfebf4;box-shadow:var(--shadow);border-radius:13px;min-height:121px;display:flex;flex-direction:column;justify-content:center;padding:19px}.stat>span{font-size:.82rem;color:#55718b;font-weight:750}.stat strong{font-size:1.9rem;letter-spacing:-.03em;line-height:1.5;color:#112c54}.stat small{color:#7390a5}.green{color:#13946c!important}.orange{color:#ad7511!important}.private-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding-bottom:50px;align-items:start}.panel{min-width:0;background:white;border:1px solid #dde9f3;border-radius:14px;padding:24px;box-shadow:var(--shadow);margin-bottom:0}.panel h2{font-size:1.16rem;letter-spacing:-.02em;margin:0 0 18px}.panel h3{margin:0 0 4px}.panel p{color:#60758a;font-size:.88rem}.panel-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:13px}.panel-head h2{margin:0}.panel-head>a{font-weight:730;font-size:.8rem;color:#098aa9}.mini-list-row{display:flex;align-items:center;gap:12px;padding:13px 2px;border-bottom:1px solid #eaf0f4;min-width:0}.mini-list-row:last-child{border:0}.mini-list-row>span:nth-child(2){flex:1;min-width:0}.mini-list-row strong{display:block;font-size:.88rem}.mini-list-row small{display:block;color:#7890a4;font-size:.77rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-icon{height:33px;width:33px;display:flex;align-items:center;justify-content:center;background:#e6f3fa;color:#078caf;border-radius:9px;font-size:1.2rem;flex-shrink:0}.small-badge{font-size:.72rem;background:#e8f3f7;padding:4px 8px;border-radius:10px;color:#326075;white-space:nowrap}.muted{color:#71869a!important;font-size:.86rem}.admin-items{display:grid;gap:10px}.admin-item{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:11px 0}.admin-item-text{min-width:0;flex:1}.admin-item-text strong{display:block;font-size:.91rem;overflow-wrap:anywhere}.admin-item-text small{display:block;color:#8293a6}.admin-item form{margin:0}.panel form>label{margin-bottom:17px}.panel hr{border:0;border-top:1px solid #e7eef4;margin:27px 0}.note-item{border-bottom:1px solid var(--line);padding:18px 0;display:flex;gap:14px;justify-content:space-between}.note-item:first-of-type{padding-top:0}.note-item:last-child{border:0}.note-item p{white-space:normal;overflow-wrap:anywhere;max-height:160px;overflow:auto}.mini-meta{font-size:.78rem;color:#738da3}.security-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding-bottom:70px;align-items:start}.security-row{border-bottom:1px solid #e7eef5;padding:13px 0;display:flex;gap:10px;justify-content:space-between;font-size:.88rem}.security-row b{font-size:.83rem;text-align:right}.usage{margin:22px 0 0}.usage>div:first-child{display:flex;justify-content:space-between;gap:10px;font-size:.81rem}.usage strong{white-space:nowrap}.usage small{color:#8395a5;font-size:.71rem}.progress{background:#e8f0f5;border-radius:20px;height:9px;overflow:hidden;margin:11px 0}.progress span{background:linear-gradient(90deg,#0696b2,#22d6d0);height:100%;display:block;width:0}.event-row{display:flex;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #e8eef4}.event-row>div{flex:1;min-width:0}.event-row strong{font-size:.85rem;display:block}.event-row small{color:#8b9aab;font-size:.76rem;display:block;overflow-wrap:anywhere}.event-row time{font-size:.74rem;color:#6f8293;white-space:nowrap}.event-dot{color:#1c91af}.event-dot.warning,.event-dot.error{color:#d46a34}.event-dot.success{color:#1caa77}.security-device{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid #e8eef4}.security-device strong{font-size:.83rem;display:block;overflow-wrap:anywhere}.security-device small{font-size:.73rem;color:#788d9e;display:block;margin-top:5px}.warning-box{background:#fff8e9;padding:13px 16px;border:1px solid #f0dba7;border-radius:9px;color:#875d1e!important;font-size:.87rem}.recovery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:25px 0}.recovery-grid code{padding:11px;text-align:center;font-weight:800;letter-spacing:.07em;color:#154568}.narrow-panel{max-width:800px;margin-bottom:45px!important}
.auth-body{min-height:100vh;background:radial-gradient(ellipse at 90% 8%,#174d77,transparent 35%),linear-gradient(145deg,#071931,#0b3456);display:flex;justify-content:center;align-items:center;padding:28px}.auth-card{width:100%;max-width:465px;background:#fff;padding:38px;border-radius:20px;box-shadow:0 30px 100px rgba(0,0,0,.23)}.auth-card .brand{color:var(--navy);font-size:1.65rem}.auth-icon{height:62px;width:62px;display:flex;align-items:center;justify-content:center;background:#e3f8fc;color:#0aa7bc;border-radius:16px;font-size:2.3rem;margin:32px 0 16px}.auth-card h1{font-size:1.9rem;letter-spacing:-.043em;margin:6px 0}.auth-card>p{color:#647c90;font-size:.9rem}.auth-card>p>a{color:#087eac;font-weight:700}.auth-card form{margin:25px 0 0}.auth-card form>label{margin-bottom:18px}.wide-auth{max-width:620px}.setup-otp{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:25px 0;align-items:center}.secret-key{display:block;line-height:1.9;overflow-wrap:anywhere;margin:10px 0;padding:12px;font-weight:700}.auth-card .flash{margin-top:20px}.flash{border-radius:9px;padding:12px 16px;margin:17px 3%;font-size:.87rem}.flash.error{color:#a52832;background:#fff0f1;border:1px solid #f6ced2}.flash.success{color:#196a4f;background:#def9ea;border:1px solid #bbecd2}.flash.info{color:#175678;background:#e8f4ff;border:1px solid #c8e5f7}.maintenance{text-align:center;padding:90px 20px;min-height:55vh}.maintenance .auth-icon{margin:0 auto 25px}.maintenance h1{font-size:2.3rem}.maintenance p{color:var(--muted)}
@media(max-width:1250px){.public-nav{gap:15px}.public-nav>a{font-size:.8rem}.topbar{padding:0 3.5%}.hero,.main-section,.inner-main,.footer{padding-left:3.5%;padding-right:3.5%}.hero{gap:30px}.admin-shell{grid-template-columns:215px minmax(0,1fr)}.sidebar-brand{font-size:1.18rem}.sidebar{padding:20px 10px}.panel{padding:20px}}
@media(max-width:980px){.menu-toggle{display:block}.public-nav{display:none;position:absolute;top:80px;left:0;right:0;background:#0b2441;flex-direction:column;align-items:stretch;padding:20px 5%;box-shadow:0 15px 25px #102e4740}.public-nav.open{display:flex}.topbar{height:80px}.hero{grid-template-columns:1fr;padding-top:45px;padding-bottom:45px}.hero-preview{display:none}.category-row{grid-template-columns:repeat(3,1fr)}.tool-grid{grid-template-columns:repeat(2,1fr)}.resource-grid,.project-grid{grid-template-columns:repeat(2,1fr)}.security-grid,.private-columns{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.brand{font-size:1.35rem}.hero{min-height:0}.hero h1{font-size:2.55rem}.hero-copy>p{font-size:.96rem}.hero-badges{gap:9px;font-size:.74rem}.searchbox{flex-wrap:wrap}.searchbox button{width:100%}.searchbox input{min-width:0}.main-section{padding-top:40px}.section-head{align-items:start;flex-direction:column;gap:8px}.section-head h2{font-size:1.6rem}.category-row{grid-template-columns:repeat(2,1fr)}.resource-grid,.project-grid,.tool-grid{grid-template-columns:1fr}.footer{flex-direction:column}.footer-right{gap:12px}.inner-main{padding-top:25px}.page-banner{padding:35px 7%}.filterbar{flex-direction:column}.filterbar select{max-width:none}.about-grid,.form-grid{grid-template-columns:1fr}.tool-workspace{padding:22px}.output-row{flex-direction:column}.admin-shell{display:block}.sidebar{min-height:0;display:block;padding:14px}.sidebar-brand{display:block}.side-caption{display:none}.sidebar nav{display:flex;flex-direction:row;overflow:auto;gap:6px;margin-top:12px}.side-link{white-space:nowrap;font-size:.76rem;padding:9px 10px}.side-link .ico{display:none}.side-bottom{display:none}.admin-top{height:45px}.admin-heading{align-items:start;flex-direction:column;margin-top:23px}.admin-heading h1{font-size:1.75rem}.stat-grid{gap:9px}.stat{padding:13px;min-height:100px}.stat strong{font-size:1.5rem}.security-device,.admin-item{flex-wrap:wrap}.security-row{flex-direction:column;gap:3px}.security-row b{text-align:left}.panel{padding:18px}.auth-body{padding:15px}.auth-card{padding:25px}.setup-otp{grid-template-columns:1fr}.recovery-grid{grid-template-columns:1fr}.event-row{flex-wrap:wrap}}
/* v1.1 - laboratoire réseau : tables et outils lisibles sur mobile */
.category-row{grid-template-columns:repeat(4,minmax(0,1fr))}
.tool-selector-net{gap:8px}
.tool-selector-net a{padding:10px 13px}
.tool-workspace{max-width:1100px}
.results-panel{overflow:auto;line-height:1.65}
.net-results{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.net-row{margin:0;padding:12px 14px;background:#fff;border:1px solid #dae7ef;border-radius:10px;min-width:0;overflow-wrap:anywhere}
.net-row dt{color:#658196;font-size:.78rem;font-weight:700;margin-bottom:4px}
.net-row dd{font-size:.97rem;color:#123a56;margin:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:700;overflow-wrap:anywhere}
.net-error{color:#a12b38;font-weight:700;margin:0}
.net-table{width:100%;border-collapse:collapse;font-size:.88rem}
.net-table td,.net-table th{padding:11px 12px;text-align:left;border-bottom:1px solid #dbe7ee}
.net-table th{color:#3f647d;background:#e4eff5}
.net-table tr:nth-child(even){background:#fff}
@media(max-width:980px){.category-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.category-row{grid-template-columns:repeat(2,minmax(0,1fr))}.net-results{grid-template-columns:1fr}.net-row dd{font-size:.88rem}}

/* Surprise cachée du NOC : un élément léger, sans dépendance externe. */
.noc-beacon{border:1px solid rgba(94,221,214,.27);border-radius:999px;padding:5px 10px;background:rgba(18,73,90,.33);color:#b6e9ed;font-size:.69rem;letter-spacing:.075em;font-weight:800;white-space:nowrap;transition:background .2s,box-shadow .2s}
.noc-beacon:hover,.noc-beacon:focus-visible{background:rgba(31,124,141,.45);box-shadow:0 0 0 3px rgba(27,201,221,.1)}
.noc-beacon-dot{color:#36e9b3;text-shadow:0 0 8px rgba(54,233,179,.75)}
.noc-dialog{position:fixed;inset:0;max-height:min(92vh,730px);max-width:min(92vw,510px);width:100%;padding:0;border:1px solid #225578;border-radius:22px;background:linear-gradient(180deg,#091e36 0%,#0c2946 100%);color:#fff;box-shadow:0 30px 95px rgba(0,0,0,.50);overflow:auto}
.noc-dialog::backdrop{background:rgba(2,11,27,.77);backdrop-filter:blur(4px)}
.noc-dialog-top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid rgba(151,220,240,.18);font-size:.7rem;letter-spacing:.09em;color:#a2dfe9;font-weight:800}
.noc-close{flex:0 0 35px;display:grid;place-items:center;border:1px solid #3b6885;border-radius:9px;background:#102f4b;color:#d9f8ff;width:35px;height:35px}
.noc-close:hover{background:#194c6d}
.noc-dialog-body{text-align:center;padding:26px 27px 28px}
.noc-symbol{display:grid;place-items:center;width:74px;height:74px;margin:0 auto 14px;background:radial-gradient(circle,#1fc9da,#09688c);border:1px solid #63e8ed;box-shadow:0 0 32px rgba(20,216,228,.32);border-radius:25px;color:white;font-size:2.3rem;transform:rotate(-8deg)}
.noc-label{color:#79def0;font-size:.7rem;font-weight:850;letter-spacing:.09em;margin:0 0 8px}
.noc-dialog h2{font-size:clamp(1.7rem,4.5vw,2.15rem);margin:0 0 10px;letter-spacing:-.045em}
.noc-dialog-body>p:not(.noc-label){color:#c7ddeb;font-size:.92rem}
.noc-terminal{text-align:left;padding:14px;border:1px solid #335e7a;border-radius:12px;background:#061629;font:12px/1.8 ui-monospace,Consolas,monospace;display:grid;gap:2px;margin:22px 0;color:#98d5e3}
.noc-terminal-success{color:#6af1c3}
.noc-play{display:block;background:linear-gradient(135deg,#25c9dc,#087f9d);color:#042137;font-weight:850;padding:12px 18px;border-radius:11px;border:0;margin:0 auto 16px;width:100%;max-width:300px}
.noc-play:hover{filter:brightness(1.12)}
.noc-audio{width:100%;max-width:380px;height:44px;display:block;margin:0 auto}
.noc-hint{font-size:.77rem!important;margin:11px 0 0;color:#a8c6d9!important}
@media(max-width:650px){.footer-right{align-items:center}.noc-dialog-body{padding:22px 18px}.noc-terminal{font-size:11px}}
@media(prefers-reduced-motion:reduce){.noc-beacon,.noc-play{transition:none}}

/* Notice de confidentialité */
.privacy-page{max-width:1080px;margin:auto}.privacy-content{max-width:850px;margin:18px auto 70px;line-height:1.75}.privacy-content h2{font-size:1.22rem;color:#14384f;margin-top:25px}.privacy-content h2:first-child{margin-top:0}.privacy-content p{color:#456377;line-height:1.7}.privacy-content a{color:#0a8195;text-decoration:underline}

/* Portail réseaux + libre + veille + arcade (v1.3). Aucun service externe. */
.portal-plus{max-width:1440px;margin:auto}
.portal-highlight{background:#eaf7fb;border:1px solid #bcdfed;border-left:4px solid #00a5c4;padding:20px 25px;border-radius:12px;margin-bottom:24px;color:#234760}
.portal-highlight strong{color:#0b3451;font-size:1.05rem}.portal-highlight p{margin:9px 0 0;line-height:1.6}
.portal-highlight a{color:#006c98;text-decoration:underline;text-underline-offset:3px}
.portal-stats{display:flex;flex-wrap:wrap;gap:14px;margin:10px 0 25px}.portal-stats span{padding:10px 15px;background:#f1f8fc;border:1px solid #dcebf4;border-radius:9px;color:#365970;font-size:.88rem}.portal-stats strong{color:#007a9c}
.portal-plus .resource-grid{margin-top:8px}
.portal-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.portal-feature{padding:26px;min-height:210px;display:flex;flex-direction:column;gap:7px}
.portal-feature .feature-icon{font-size:2.4rem;color:#0a9cb7}
.portal-feature h3{margin:3px 0;font-size:1.18rem}.portal-feature p{color:#526f82;flex:1;margin:0 0 13px}
.portal-feature a{color:#087ea1;font-weight:750}
.checklist-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.checklist-card{padding:25px}.checklist-card h2{font-size:1.2rem;margin:0 0 16px;color:#14334e}
.check-items{display:grid;gap:13px}.check-items label{display:flex;align-items:flex-start;gap:11px;line-height:1.4;cursor:pointer;font-size:.93rem;color:#23465b}
.check-items input{margin-top:4px;accent-color:#008eac;min-width:17px;min-height:17px}
.check-items input:checked+span{text-decoration:line-through;color:#7791a0}
.check-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:15px}
.check-actions #check-status{font-size:.82rem;color:#2d6078}
.check-progress{display:flex;align-items:center;gap:13px;margin:20px 0}.check-progress progress{width:min(100%,350px);height:13px;accent-color:#008eb1}
.veille-status{display:flex;gap:12px;padding:18px 24px;border:1px solid #cde5ef;border-radius:12px;background:#f2faff;margin-bottom:20px}
.veille-status strong{color:#123a56}.veille-status p{margin:5px 0 0;color:#4c697c;font-size:.9rem}.veille-light{font-size:1.35rem}.veille-light.online{color:#16a481}.veille-light.stale{color:#b57a31}
.veille-sources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-bottom:30px}.veille-source{padding:20px;display:grid;gap:7px;text-decoration:none}.veille-source span{font-size:.87rem;color:#007f9d}
.veille-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.veille-item{padding:20px;min-height:128px}.veille-item h3{font-size:1rem;margin:12px 0}.veille-item a{color:#0c4261}.veille-item a:hover{text-decoration:underline}.veille-item p{font-size:.82rem;color:#587487;margin:0}
.arcade-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.arcade-tabs a{border-radius:10px;padding:13px 18px;background:#ecf5fb;border:1px solid #cde5f2;color:#104962;font-weight:750}.arcade-tabs a.selected{color:#fff;background:#0b3554;border-color:#0b3554}
.public-arcade{color:#ebf8ff;margin:auto;max-width:650px}.public-arcade .arcade-game{max-width:448px}
.public-arcade .arcade-heading h2{color:#fff}.public-arcade .arcade-score strong{color:#ffc56e}
.portal-game{max-width:800px;margin:0 auto;padding:30px}.portal-game h2{font-size:1.75rem;letter-spacing:-.03em;margin:7px 0}.portal-game>p{color:#527284}.portal-game h3{font-size:1.35rem;margin:23px 0 15px}.quiz-status{display:flex;justify-content:space-between;border-top:1px solid #dce9f3;border-bottom:1px solid #dce9f3;padding:13px 0;color:#177f9b;margin-top:18px}
.quiz-answers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.quiz-choice{padding:15px 12px;min-height:64px;background:#f2f9fc;border:1px solid #bddae9;border-radius:10px;font-size:1.05rem;color:#183b53;font-weight:750;cursor:pointer}.quiz-choice:hover:enabled{border-color:#00a3c5;background:#e4f8fb}.quiz-choice.is-correct{background:#d8f4e8;border-color:#40bb83}.quiz-choice.is-wrong{background:#ffeded;border-color:#d98a8a}.quiz-choice:disabled{cursor:default}
#quiz-feedback,#memo-feedback{min-height:38px;font-size:.92rem;color:#375c6b}.memo-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0}.memory-tile{background:#0b304c;color:#fff;border:2px solid #245c76;border-radius:10px;min-height:90px;padding:10px;font-size:1rem;font-weight:800;cursor:pointer;transition:background .15s}.memory-tile.is-open{background:#e4f6fb;color:#0b3d54}.memory-tile.is-match{background:#d6f4e5;color:#176748;border-color:#7bcda0}.arcade-disclaimer{text-align:center;font-size:.84rem;color:#607d8c;margin-top:25px}
@media(max-width:1180px){.menu-toggle{display:block}.public-nav{display:none;position:absolute;top:80px;left:0;right:0;background:#0b2441;flex-direction:column;align-items:stretch;padding:20px 5%;box-shadow:0 15px 25px #102e4740}.public-nav.open{display:flex}}
@media(max-width:760px){.portal-feature-grid,.veille-sources,.veille-list,.checklist-grid{grid-template-columns:1fr}.portal-game{padding:20px}.memo-board{gap:7px}.memory-tile{min-height:68px;font-size:.78rem}.portal-stats{gap:8px}}
@media(max-width:480px){.quiz-answers{grid-template-columns:1fr}.arcade-tabs{display:grid}.arcade-tabs a{padding:11px 14px}.check-actions .btn{width:100%}}

/* Dossier gestion de parc (GLPI/WAPT) */
.fleet-home{padding-top:28px}.fleet-promo{background:linear-gradient(115deg,#102b49,#17617a);border-radius:16px;color:white;padding:28px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 24px}.fleet-promo .eyebrow{color:#80e6ed}.fleet-promo h2{margin:7px 0;font-size:1.65rem}.fleet-promo p{margin:0;color:#d5ecf3;max-width:700px}.fleet-promo .btn{white-space:nowrap}.fleet-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:24px}.fleet-card{padding:29px}.fleet-card h2{font-size:2rem;margin:9px 0 10px}.fleet-card ul{padding-left:20px;color:#405673}.fleet-card li{margin:7px 0}.fleet-card>a{display:inline-block;color:#067e9e;font-weight:760;margin-top:10px}.fleet-card .eyebrow{letter-spacing:.08em}.fleet-workflow,.fleet-links{padding:30px;margin-bottom:24px}.fleet-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.fleet-steps>div{border:1px solid #dce8f0;border-radius:12px;padding:16px;background:#f8fbfd}.fleet-steps span{display:block;color:#078fa9;font-size:1.3rem;font-weight:850}.fleet-steps strong{display:block;margin:5px 0}.fleet-steps p{margin:0;color:#526b81;font-size:.86rem}.fleet-link-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.fleet-link-list a{border:1px solid #dce8f0;background:#f7fbfe;border-radius:12px;padding:15px}.fleet-link-list strong,.fleet-link-list span{display:block}.fleet-link-list span{font-size:.86rem;color:#4c6d83;margin-top:5px}.fleet-link-list a:hover{border-color:#22aaca}
@media(max-width:900px){.fleet-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.fleet-promo{flex-direction:column;align-items:start}.fleet-overview{grid-template-columns:1fr}}
@media(max-width:600px){.fleet-steps,.fleet-link-list{grid-template-columns:1fr}.fleet-card,.fleet-links,.fleet-workflow{padding:22px}.fleet-promo{padding:22px}.fleet-promo .btn{white-space:normal}}

/* v1.4 : navigation organisée & gestion des rubriques */
.public-nav .nav-group{position:relative;color:#e8f4ff;}
.public-nav .nav-group>summary{list-style:none;cursor:pointer;font-size:.88rem;font-weight:720;display:flex;gap:7px;align-items:center;padding:10px 0;color:#e8f4ff;user-select:none;}
.public-nav .nav-group>summary::-webkit-details-marker{display:none;}
.public-nav .nav-group[data-active="1"]>summary,.public-nav .nav-group>summary:hover{color:#48e2ee;}
.public-nav .nav-group[open]>summary{color:#48e2ee;}
.public-nav .nav-dropdown{position:absolute;right:0;top:100%;min-width:225px;display:grid;gap:3px;background:#102f4e;border:1px solid #36617b;box-shadow:0 20px 34px #09162852;border-radius:12px;padding:9px;z-index:25;}
.public-nav .nav-dropdown>a{font-size:.83rem;color:#e5f1fa;font-weight:600;padding:11px 12px;border-radius:7px;white-space:nowrap;}
.public-nav .nav-dropdown>a:hover,.public-nav .nav-dropdown>a.active{background:#176080;color:white;}
.section-settings{margin:0 3% 65px!important;}
.section-settings-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px solid #e7eef4;padding-bottom:12px;margin-bottom:14px;}
.section-settings-top p{max-width:740px;}
.sections-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;}
.sections-group{grid-column:1/-1;margin:19px 0 0!important;color:#345c77;font-weight:800;font-size:1rem;}
.section-switch{display:flex!important;align-items:center;justify-content:space-between;gap:15px;min-height:82px;margin:0!important;padding:15px 16px;border:1px solid #dfebf2;border-radius:12px;background:#f8fbfd;cursor:pointer;}
.section-switch>span:first-child{min-width:0;}.section-switch strong{display:block;font-size:.94rem;color:#143c59;}.section-switch small{display:block;font-size:.76rem;color:#648198;margin-top:4px;}
.section-switch-control{display:inline-flex;align-items:center;flex:0 0 auto;position:relative;}
.section-switch-control input{position:absolute;width:42px;height:26px;opacity:0;margin:0;cursor:pointer;z-index:1;}
.switch-track{display:block;width:42px;height:26px;border-radius:20px;background:#a6b7c4;transition:background .2s;position:relative;}
.switch-track:before{content:"";position:absolute;top:4px;left:4px;width:18px;height:18px;border-radius:100%;background:white;transition:transform .2s;box-shadow:0 1px 4px #10233440;}
.section-switch-control input:checked + .switch-track{background:#028cac;}.section-switch-control input:checked + .switch-track:before{transform:translateX(16px);}
.section-switch-control input:focus-visible + .switch-track{outline:3px solid #8adae9;outline-offset:3px;}
.section-settings-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:23px 0 12px;}
@media(max-width:1180px){.public-nav .nav-group{width:100%;}.public-nav .nav-group>summary{padding:10px 0;}.public-nav .nav-dropdown{position:static;box-shadow:none;border:0;border-left:2px solid #229ab2;background:transparent;border-radius:0;margin:0 0 4px 8px;}.public-nav .nav-dropdown>a{white-space:normal;}}
@media(max-width:760px){.sections-grid{grid-template-columns:1fr;}.section-settings{margin-left:3%!important;margin-right:3%!important;}.section-settings-top{flex-direction:column;}}

.diagnostic-row{display:flex;gap:20px;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid #e9eef4;font-size:.85rem;}.diagnostic-row span{color:#4d7089;text-align:right;max-width:65%;overflow-wrap:anywhere;}@media(max-width:600px){.diagnostic-row{display:block;}.diagnostic-row span{display:block;margin-top:5px;text-align:left;max-width:100%;}}
