:root{color-scheme:light;--blue:#276ca8;--dark:#122a40;--ink:#192d3e;--muted:#607385;--border:#dce5ec;--wash:#f3f6f9;--white:#fff;font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:16px}
/* Administration directories */
.directory-toolbar{display:flex;flex-wrap:wrap;gap:.85rem;align-items:end;padding:1.2rem}
.directory-toolbar label{flex:1 1 155px;margin:0;min-width:0}
.directory-toolbar .directory-search{flex:2 1 260px}
.directory-toolbar label:has(select[name="size"]){flex:0 1 110px}
.directory-toolbar input,.directory-toolbar select{padding:.6rem;min-height:44px}
.directory-buttons{display:flex;gap:.5rem;flex-wrap:wrap;margin-left:auto}
.directory-summary{display:flex;justify-content:space-between;gap:1rem;margin:1rem 0;color:var(--muted);font-size:.85rem}
.directory-summary strong{color:var(--ink)}
.panel.directory-table{padding:.5rem 1rem}
.directory-table th{white-space:nowrap}
.directory-table .button{white-space:nowrap}
.directory-actions{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}
.hosting-status{display:block;font-size:.8rem;font-weight:700;color:#26613c}.hosting-warning{color:#9a6500}.hosting-expired{color:#a1392e}.hosting-none{color:var(--muted)}.project-hosting-line{display:grid;gap:.2rem;margin:1rem 0;padding:.8rem 0;border-top:1px solid var(--border);font-size:.8rem;color:var(--muted)}.project-hosting-line strong{font-size:.9rem}.hosting-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;padding:1rem 1.2rem;margin-bottom:1.4rem;background:#edf7f0;border:1px solid #bcd9c5;border-left:4px solid #4b9363;border-radius:7px}.hosting-summary.hosting-warning{background:#fff8e6;border-color:#e8d29b;border-left-color:#d69a20}.hosting-summary.hosting-expired{background:#fff1ef;border-color:#e6bbb5;border-left-color:#bd5145}.hosting-summary.hosting-none{background:#f4f6f8;border-color:var(--border);border-left-color:#8394a1}.hosting-summary div{display:grid;gap:.15rem;min-width:0}.hosting-summary small{font-size:.75rem}.hosting-summary strong{overflow-wrap:anywhere;color:var(--ink)}.hosting-control summary{cursor:pointer;color:var(--blue);font-weight:600}.hosting-extensions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:1rem}.hosting-extensions>span{font-size:.85rem;color:var(--muted);margin-right:.25rem}.hosting-extensions form{margin:0}
.public-link-heading{display:flex;align-items:start;justify-content:space-between;gap:1rem}.public-link-heading p{margin-bottom:1rem}.share-result{display:flex;align-items:end;gap:.75rem;padding:1rem;background:#f4f8fb;border:1px solid var(--border);border-radius:7px}.share-result label{flex:1;margin:0}.share-result input{font-family:Consolas,monospace;font-size:.8rem}.public-link-actions{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}.public-link-actions small{max-width:420px}.public-link-revoke{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}
.directory-table td{vertical-align:top;padding:.9rem .7rem}
.directory-table td:first-child{min-width:180px}
.directory-table tbody tr:hover{background:#f7fafc}
.record-title{color:var(--ink)}
.record-title:hover{color:var(--blue);text-decoration:underline}
.record-description{max-width:340px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:.25rem}
.badge.badge-published{background:#e7f3ec;color:#276341}
.record-actions{min-width:115px;max-width:340px}
.record-actions>summary{cursor:pointer;color:var(--blue);font-weight:600;padding:.45rem .1rem}
.record-actions[open]{min-width:230px}
.record-actions[open]>summary{border-bottom:1px solid var(--border);margin-bottom:.6rem}
.directory-pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.4rem;margin:1.5rem 0}
.directory-pagination .button{min-width:42px}
@media(max-width:650px){.directory-toolbar label,.directory-toolbar .directory-search,.directory-toolbar label:has(select[name="size"]){flex-basis:100%}.directory-buttons{width:100%}.directory-buttons>*{flex:1}.panel.directory-table{padding:.5rem}.directory-table{max-width:100%}.directory-summary{flex-wrap:wrap}}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--wash);line-height:1.5}a{color:var(--blue);text-decoration:none}button,input,select,textarea{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.6rem 1rem;border:1px solid var(--border);border-radius:7px;background:white;color:var(--ink);cursor:pointer;font-weight:600;font-size:.9rem}button:hover,.button:hover{background:#eaf2f8;border-color:#9abbd6}.primary{color:white;background:var(--blue);border-color:var(--blue)}.primary:hover{color:white;background:#1c5789;border-color:#1c5789}:focus-visible{outline:3px solid #df971c;outline-offset:3px}h1,h2,p{margin-top:0}h1{font-size:2.1rem;line-height:1.2;letter-spacing:-.04em;margin-bottom:.4rem}h2{font-size:1.15rem;line-height:1.35}small{display:block;font-size:.8rem;color:var(--muted)}.muted,.help{color:var(--muted)}.help{font-size:.875rem;margin:.4rem 0 1rem}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.13em;color:var(--blue);margin-bottom:.7rem}.brand{display:flex;flex-direction:column;color:inherit;line-height:1.2;align-items:flex-start}.brand strong{font-size:1.75rem;letter-spacing:.1em}.brand span{font-size:.7rem;letter-spacing:.42em;margin-top:.25rem}.auth-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-brand{background:var(--dark);color:white;padding:3rem 10%;display:flex;flex-direction:column;justify-content:space-between;gap:3rem}.auth-brand h1{font-size:clamp(2.5rem,5vw,4.8rem);line-height:1.1;font-weight:600;margin:1rem 0 2rem}.auth-brand .eyebrow,.auth-brand small,.auth-brand p{color:#bdd1e2}.auth-form{display:flex;align-items:center;justify-content:center;padding:3rem 2rem;background:white}.auth-inner{width:100%;max-width:390px}.auth-inner h2{font-size:2rem;letter-spacing:-.04em}.auth-inner form{margin-top:2rem}.wide{width:100%}label{display:flex;flex-direction:column;gap:.45rem;font-size:.875rem;font-weight:600;margin-bottom:1rem}input,select,textarea{min-width:0;width:100%;padding:.75rem;border:1px solid #b8c8d4;border-radius:6px;background:white;color:var(--ink);font-weight:400}textarea{resize:vertical}.shell{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:2rem 1.35rem;background:var(--dark);color:white;display:flex;flex-direction:column}.sidebar .brand{padding:.2rem .6rem 2.8rem}.nav-label{font-size:.7rem;letter-spacing:.09em;color:#a8bed0;padding:0 .7rem}.sidebar nav{display:grid;gap:.4rem}.sidebar nav a{color:#d4e0e9;padding:.8rem 1rem;border-radius:6px;font-size:.95rem}.sidebar nav a:hover,.sidebar nav a.selected{background:#28465f;color:white}.sidebar-bottom{margin-top:auto;padding:.7rem;display:grid;gap:.7rem;font-size:.85rem}.sidebar-bottom>span{color:#9fb7ca}.sidebar-bottom a{color:#d4e0e9}.logout{padding:0;color:white;background:none;border:none;font-size:.85rem;min-height:32px}.logout:hover{background:none;text-decoration:underline;color:white}.content{padding:0 clamp(1.2rem,4vw,4rem);min-width:0}.topbar{min-height:74px;display:flex;justify-content:space-between;gap:1rem;align-items:center;border-bottom:1px solid var(--border);font-size:.8rem;color:var(--muted)}.topbar>span:last-child{font-size:.9rem;color:var(--ink);overflow-wrap:anywhere}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:2.5rem 0 2rem;overflow-wrap:anywhere}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}.stats>div{display:flex;flex-direction:column;border-left:3px solid var(--blue);padding:.2rem 1rem}.stats strong{font-size:2rem;line-height:1.2}.stats span{font-size:.85rem;color:var(--muted);margin-top:.4rem}.panel{padding:1.6rem;background:white;border:1px solid var(--border);border-radius:9px;margin-bottom:1.4rem;min-width:0}.create{padding:0}.create summary{cursor:pointer;color:var(--blue);font-weight:600;padding:1.15rem 1.5rem}.create[open] summary{border-bottom:1px solid var(--border)}.create form{padding:1.5rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.25rem 1.3rem}.full{grid-column:1/-1}.empty{padding:3rem 1.5rem;text-align:center}.empty p{max-width:520px;margin:0 auto 1.3rem;color:var(--muted)}.empty-mark{display:block;font-size:3rem;color:#c2d5e4;font-weight:700;margin-bottom:1rem}.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));gap:1.2rem}.project-card{display:flex;flex-direction:column;color:var(--ink);background:white;border:1px solid var(--border);border-radius:9px;padding:1.4rem;min-width:0;transition:border-color .15s}.project-card:hover{border-color:var(--blue)}.card-top{display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:1.7rem}.type{font-size:.8rem;color:var(--blue);font-weight:600}.badge{font-size:.75rem;background:#edf1f4;color:#53697a;padding:.25rem .6rem;border-radius:5px}.project-card .muted{font-size:.8rem;margin-bottom:.35rem;overflow-wrap:anywhere}.project-card h2{font-size:1.2rem;overflow-wrap:anywhere;margin-bottom:.7rem}.description{font-size:.9rem;color:var(--muted);overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card-footer{display:flex;justify-content:space-between;gap:.5rem;margin-top:auto;padding-top:1.2rem;border-top:1px solid var(--border);font-size:.75rem;color:var(--muted)}.card-footer span:last-child{color:var(--blue);font-weight:600}.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:1.5rem;align-items:start}.list-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.list-row:last-child{border-bottom:0}.list-row>span{color:var(--muted);white-space:nowrap;font-size:.85rem}.count{font-size:.8rem;color:var(--muted);margin-left:.5rem}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:.8rem;color:var(--muted);font-weight:600;padding:.7rem;border-bottom:1px solid var(--border)}td{padding:1rem .7rem;border-bottom:1px solid var(--border);font-size:.9rem}td strong,td small{overflow-wrap:anywhere}td form{margin:0}tr:last-child td{border-bottom:0}.project-meta{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;font-size:.85rem;margin-bottom:1.5rem;color:var(--muted)}.project-description{white-space:normal;overflow-wrap:anywhere}.inline-form{display:flex;align-items:end;gap:1rem;margin-top:1.5rem;flex-wrap:wrap}.inline-form label{flex:1;margin:0;min-width:190px}.narrow{max-width:560px}.notice{padding:1rem 1.2rem;border-radius:6px;font-size:.9rem;border:1px solid}.error{background:#fff3f1;color:#8e342b;border-color:#ebc2bb}.success{background:#eaf3f9;color:#21577e;border-color:#b8d3e7}footer{padding:3rem 0 1.5rem;color:var(--muted);font-size:.75rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:900px){.shell{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:1.5rem 1rem}.sidebar .brand strong{font-size:1.4rem}.split{grid-template-columns:1fr}.auth-brand{padding:2rem}.stats{gap:.5rem}.page-heading{align-items:start}}
@media(max-width:650px){.auth-layout{grid-template-columns:1fr}.auth-brand{padding:1.5rem;gap:1rem}.auth-brand>div,.auth-brand>small{display:none}.auth-form{padding:2rem 1.5rem}.shell{display:block}.sidebar{height:auto;position:static;padding:1rem}.sidebar .brand{padding:0 0 1rem}.nav-label{display:none}.sidebar nav{display:flex;flex-wrap:wrap}.sidebar nav a{padding:.6rem .8rem}.sidebar-bottom{display:flex;align-items:center;flex-wrap:wrap;padding:.8rem 0 0;font-size:.8rem;gap:.8rem}.sidebar-bottom>span{display:none}.topbar{min-height:55px}.page-heading{margin:1.6rem 0;flex-wrap:wrap}h1{font-size:1.8rem}.stats{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.stats strong{font-size:1.6rem}.stats span{font-size:.8rem}.form-grid{grid-template-columns:1fr}.panel{padding:1.2rem}.create{padding:0}.create form{padding:1.2rem}.list-row{flex-wrap:wrap}.table-wrap{padding:.5rem}.card-footer{flex-wrap:wrap}}
@media(max-width:650px){.hosting-summary{grid-template-columns:1fr;gap:.75rem}}
.reset-password{margin-top:.7rem;font-size:.8rem}.reset-password summary{cursor:pointer;color:var(--blue)}.reset-password form{margin-top:1rem;min-width:200px}.reset-password label{font-size:.8rem}
.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.upload-grid h3{font-size:1rem}.publication-ready{display:flex;align-items:center;justify-content:space-between;gap:1rem}.publication-ready p{margin:0}.resource-row{display:flex;flex-direction:row;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--border)}.resource-row input{width:20px;height:20px;flex-shrink:0}.publication-actions{display:flex;gap:1rem;margin-top:1.5rem;flex-wrap:wrap}progress{width:100%;height:20px;margin:1rem 0}.upload-grid input[type=file]{font-size:.8rem}@media(max-width:750px){.upload-grid{grid-template-columns:1fr}.publication-ready{align-items:start;flex-direction:column}}
[hidden]{display:none!important}
.resource-entry{padding-bottom:.7rem;border-bottom:1px solid var(--border)}.resource-entry .resource-row{border-bottom:0;margin-bottom:0}.resource-entry small{overflow-wrap:anywhere}.resource-entry>button{margin-left:36px;margin-bottom:.3rem}
.resource-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-left:36px;margin-bottom:.3rem}.resource-actions button{margin:0}
.upload-repair-help{padding:.7rem .9rem;background:#fff8e6;border-left:3px solid #d69a20;border-radius:4px}
.danger{color:#9c332b;border-color:#e0b3ae}.danger:hover{background:#fff0ee;border-color:#c46b61}
.delete-control{margin-top:1rem;font-size:.85rem}.delete-control summary{cursor:pointer;color:#9c332b;font-weight:600}.delete-control p{margin:1rem 0;max-width:620px;white-space:normal}.delete-control form{margin-bottom:.6rem}
.list-row:has(>.delete-control){flex-wrap:wrap}.list-row>.delete-control{flex-basis:100%;margin-top:0}
.edit-control{font-size:.85rem;margin:.6rem 0}.edit-control summary{cursor:pointer;color:var(--blue);font-weight:600}.edit-control form{margin-top:1rem;min-width:200px}.list-row>.edit-control{flex-basis:100%}

/* Public landing page */
.landing-page{min-height:100vh;background:#f7f9fb;color:var(--ink);overflow:hidden}.landing-nav{max-width:1220px;margin:0 auto;padding:1.4rem clamp(1.25rem,4vw,3.5rem);display:flex;align-items:center;justify-content:space-between;gap:2rem}.landing-brand{display:inline-flex;align-items:center;gap:.65rem;color:var(--ink);line-height:1}.landing-brand-mark{width:38px;height:48px;object-fit:contain}.landing-brand span{display:flex;flex-direction:column;gap:.25rem}.landing-brand strong{font-size:1.25rem;letter-spacing:.16em}.landing-brand small{font-size:.58rem;letter-spacing:.42em;color:var(--blue);font-weight:700}.landing-nav nav{display:flex;align-items:center;gap:1.7rem;font-size:.85rem}.landing-nav nav a{color:var(--muted)}.landing-nav nav a:hover{color:var(--ink)}.landing-nav .nav-login{color:var(--blue);border:1px solid #b8d0e3;border-radius:999px;padding:.65rem 1rem;background:#fff}.landing-hero{max-width:1220px;margin:0 auto;padding:clamp(3rem,8vw,7rem) clamp(1.25rem,4vw,3.5rem) clamp(4rem,8vw,7rem);display:grid;grid-template-columns:minmax(0,1.12fr) minmax(320px,.72fr);align-items:center;gap:clamp(3rem,8vw,8rem)}.hero-copy h1{font-size:clamp(2.35rem,4.8vw,4.55rem);line-height:1.07;font-weight:500;letter-spacing:-.06em;margin:0 0 1.5rem;color:#16334b}.hero-copy h1 em{font-style:normal;color:var(--blue)}.hero-lead{max-width:590px;font-size:1.1rem;line-height:1.65;color:#526c7e;margin-bottom:2rem}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1.25rem}.hero-actions .primary{border-radius:999px;padding:.8rem 1.35rem;box-shadow:0 8px 20px rgba(39,108,168,.18)}.text-link{font-weight:600;color:var(--ink);font-size:.9rem}.text-link span{color:var(--blue);margin-left:.3rem;font-size:1.2rem}.hero-note{display:flex;align-items:center;gap:.65rem;max-width:480px;margin-top:2.8rem;color:#7890a0;font-size:.77rem}.hero-note-dot{width:8px;height:8px;border-radius:50%;background:#5ea986;box-shadow:0 0 0 5px #e1f1e9;flex:none}.landing-auth{padding:2rem;display:block;align-self:center;background:rgba(255,255,255,.88);border:1px solid #d9e5ec;border-radius:18px;box-shadow:0 24px 70px rgba(24,58,84,.12)}.landing-auth .auth-inner{max-width:none}.auth-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.4rem}.auth-kicker{font-size:.68rem;letter-spacing:.15em;font-weight:700;color:var(--blue)}.auth-lock{width:29px;height:29px;border:1px solid #c8dce9;border-radius:50%;display:grid;place-items:center;color:var(--blue);font-size:1rem}.landing-auth h2{font-size:1.75rem;color:#16334b}.landing-auth .auth-inner form{margin-top:1.5rem}.landing-visors{background:#fff;padding:clamp(4rem,8vw,7rem) clamp(1.25rem,4vw,3.5rem)}.landing-visors>*,.landing-story,.landing-footer{max-width:1220px;margin-left:auto;margin-right:auto}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2.3rem}.section-heading h2{font-size:clamp(1.9rem,3.4vw,3rem);font-weight:500;letter-spacing:-.05em;max-width:560px;margin:0;color:#16334b}.section-heading>p{max-width:310px;color:var(--muted);font-size:.9rem;line-height:1.6;margin:0}.visor-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.visor-card{min-width:0;border:1px solid #dce7ee;border-radius:13px;overflow:hidden;background:#fbfdfe;color:var(--ink);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.visor-card:hover{transform:translateY(-4px);border-color:#a8c8df;box-shadow:0 16px 30px rgba(36,78,109,.1)}.visor-media{height:154px;position:relative;overflow:hidden;background:#dbeaf3}.visor-media:before,.visor-media:after{content:"";position:absolute;border-radius:50%;filter:blur(1px)}.media-points{background:radial-gradient(circle at 25% 30%,#75b0e0 0 1px,transparent 2px),radial-gradient(circle at 62% 65%,#1a63a8 0 1.3px,transparent 2.5px),linear-gradient(140deg,#0f3049,#276ca8 56%,#b7d7e9);background-size:22px 18px,27px 23px,auto}.media-inspection{background:linear-gradient(135deg,#dae8ef 0 48%,#eef4f6 49% 100%)}.media-inspection:before{width:120px;height:88px;left:18%;top:25%;border:2px solid rgba(39,108,168,.58);border-radius:4px;box-shadow:18px 14px 0 -1px rgba(39,108,168,.14)}.media-xgrids{background:radial-gradient(ellipse at 45% 50%,#9fc9dc 0 2px,transparent 3px),linear-gradient(110deg,#193d54,#74a9bf 48%,#e2eef1)}.media-panoramas{background:linear-gradient(180deg,#b1d4e2 0 53%,#547f91 54% 100%)}.media-panoramas:before{width:100%;height:75%;left:0;top:0;border-radius:0;background:linear-gradient(125deg,transparent 43%,rgba(255,255,255,.45) 44% 45%,transparent 46%),linear-gradient(55deg,transparent 49%,rgba(255,255,255,.35) 50% 51%,transparent 52%)}.media-mesh{background:linear-gradient(145deg,#1a384d,#568ba0)}.media-mesh:before{width:112px;height:80px;left:30%;top:27%;background:linear-gradient(30deg,transparent 48%,#b9d8e5 49% 51%,transparent 52%),linear-gradient(150deg,transparent 48%,#b9d8e5 49% 51%,transparent 52%);transform:perspective(140px) rotateX(23deg) rotateZ(-12deg);border:1px solid rgba(213,238,248,.75)}.media-splat{background:radial-gradient(ellipse at 35% 40%,#f5b56d 0 2px,transparent 3px),radial-gradient(ellipse at 64% 58%,#e56f86 0 2px,transparent 3px),linear-gradient(135deg,#40234c,#d76d75)}.media-gis{background:linear-gradient(135deg,#dae9d6,#90b6a0)}.media-gis:before{width:150%;height:1px;left:-20%;top:46%;background:rgba(37,104,77,.5);transform:rotate(-25deg);border-radius:0}.media-gis:after{width:1px;height:150%;left:54%;top:-20%;background:rgba(37,104,77,.45);transform:rotate(32deg);border-radius:0}.media-chip{position:absolute;z-index:2;top:1rem;left:1rem;color:rgba(255,255,255,.9);font-size:.58rem;letter-spacing:.15em;font-weight:700}.media-orbit{position:absolute;border:1px solid rgba(255,255,255,.38);border-radius:50%;width:145px;height:65px;left:26%;top:35%;transform:rotate(-24deg)}.media-orbit-two{width:95px;height:43px;left:38%;top:43%;transform:rotate(28deg)}.media-dot{position:absolute;width:5px;height:5px;background:#fff;border-radius:50%;box-shadow:0 0 0 3px rgba(255,255,255,.18)}.media-dot-one{left:28%;top:35%}.media-dot-two{left:70%;top:63%}.media-dot-three{left:56%;top:25%}.media-grid-lines{position:absolute;inset:0;opacity:.28;background:linear-gradient(90deg,transparent 49%,#fff 50%,transparent 51%),linear-gradient(0deg,transparent 49%,#fff 50%,transparent 51%);background-size:34px 34px;mask-image:linear-gradient(180deg,transparent,#000 70%)}.visor-card-body{position:relative;padding:1.1rem 1.2rem 1.3rem}.visor-card-body h3{font-size:1rem;margin:.15rem 0 .45rem;color:#19384f}.visor-card-body p{font-size:.82rem;color:var(--muted);line-height:1.5;min-height:3.7em;margin-bottom:1rem}.visor-more{font-size:.72rem;font-weight:700;color:var(--blue)}.visor-arrow{position:absolute;right:1rem;top:1rem;color:#a8bfd0;font-size:1.2rem}.landing-story{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,8vw,8rem);padding:clamp(4rem,8vw,7rem) clamp(1.25rem,4vw,3.5rem);align-items:end}.landing-story h2{font-size:clamp(2rem,4vw,3.8rem);font-weight:500;line-height:1.1;letter-spacing:-.06em;color:#16334b}.landing-story h2 span{color:var(--blue)}.landing-story>p{font-size:1.05rem;color:var(--muted);line-height:1.75;margin:0;max-width:510px}.landing-footer{border-top:1px solid #dce5ec;padding:1.5rem clamp(1.25rem,4vw,3.5rem);display:flex;align-items:center;gap:2rem;color:#7b8c99;font-size:.75rem}.footer-brand{margin-right:auto}.footer-brand .landing-brand-mark{width:25px;height:31px}.footer-brand strong{font-size:.9rem}.footer-brand small{font-size:.45rem}.landing-footer>a:last-child{color:var(--blue);font-weight:700}
@media(max-width:1000px){.landing-hero{gap:3rem}.visor-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.landing-nav{align-items:start}.landing-nav nav{gap:.8rem}.landing-nav nav a:not(.nav-login){display:none}.landing-hero{grid-template-columns:1fr;padding-top:3.5rem}.landing-auth{max-width:480px;width:100%;justify-self:center}.section-heading,.landing-story{display:block}.section-heading>p{margin-top:1rem}.visor-grid{grid-template-columns:1fr}.landing-story>p{margin-top:1.5rem}.landing-footer{flex-wrap:wrap;gap:1rem}.landing-footer>span{order:3;width:100%}}
.info-page-body{background:#f7f9fb}.info-page{min-height:100vh;background:#f7f9fb}.nav-back{font-size:.85rem;color:var(--blue);font-weight:600}.info-hero{max-width:1220px;margin:0 auto;padding:clamp(4rem,10vw,9rem) clamp(1.25rem,4vw,3.5rem);display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,8vw,8rem);align-items:center}.info-copy h1{font-size:clamp(3rem,6vw,6rem);font-weight:500;line-height:1;letter-spacing:-.07em;color:#16334b;margin-bottom:1.5rem}.info-intro{font-size:1.15rem;color:#526c7e;line-height:1.65;max-width:560px;margin-bottom:2rem}.info-preview{padding:1rem;background:#fff;border:1px solid #dce7ee;border-radius:16px;box-shadow:0 24px 60px rgba(24,58,84,.1)}.info-preview .visor-media{height:330px;border-radius:9px}.info-preview>p{font-size:.72rem;color:#7b8c99;margin:.8rem .2rem .1rem}.info-details{max-width:1220px;margin:0 auto;padding:clamp(4rem,8vw,7rem) clamp(1.25rem,4vw,3.5rem);border-top:1px solid #dce5ec;display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,8vw,8rem)}.info-details h2{font-size:clamp(2rem,4vw,3.6rem);font-weight:500;line-height:1.08;letter-spacing:-.06em;color:#16334b;margin:0}.info-details>div:last-child>p{color:var(--muted);line-height:1.75;font-size:1.02rem;margin-top:0}.info-details ul{list-style:none;padding:0;margin:2rem 0 0;display:grid;gap:.75rem}.info-details li{position:relative;padding-left:1.5rem;color:#38566a;font-size:.9rem}.info-details li:before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px #e1edf5}.info-example{max-width:1220px;margin:0 auto;padding:0 clamp(1.25rem,4vw,3.5rem) clamp(4rem,8vw,7rem);display:flex;align-items:baseline;gap:2rem;flex-wrap:wrap}.info-example>p:not(.eyebrow){font-size:1.4rem;color:#38566a;margin:0;flex:1;min-width:270px}.info-example .eyebrow{width:100%;margin:0}.info-example .text-link{white-space:nowrap}
@media(max-width:700px){.info-hero,.info-details{grid-template-columns:1fr}.info-hero{padding-top:3.5rem}.info-preview .visor-media{height:230px}.nav-back{font-size:.75rem}.info-details{gap:2.5rem}.info-example{display:block}.info-example .text-link{display:inline-block;margin-top:1.5rem}}
.landing-offer{background:#f7f9fb;padding:clamp(4rem,8vw,7rem) clamp(1.25rem,4vw,3.5rem)}.landing-offer>*{max-width:1220px;margin-left:auto;margin-right:auto}.offer-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.offer-card{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;padding:1.8rem;border:1px solid #dce7ee;border-radius:13px;background:#fff}.offer-number{font-size:.75rem;letter-spacing:.12em;color:var(--blue);font-weight:700;padding-top:.2rem}.offer-card h3{font-size:1.2rem;color:#19384f;margin-bottom:.6rem}.offer-card p{font-size:.9rem;line-height:1.65;color:var(--muted);margin-bottom:1.15rem}.offer-card .text-link{font-size:.8rem}@media(max-width:700px){.offer-grid{grid-template-columns:1fr}.offer-card{padding:1.35rem;gap:1rem}}
.project-card-main{display:flex;flex:1;flex-direction:column;color:var(--ink)}.project-card-main:hover{color:var(--ink)}.card-footer{align-items:center;flex-wrap:wrap}.card-footer a:first-child{color:var(--blue);font-weight:600}.card-footer .button{min-height:34px;padding:.4rem .7rem;font-size:.78rem}.project-viewer-access{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.project-group-row th{background:#f1f5f4;border-top:1px solid #d8e3df;color:#183d3a;font-size:.95rem;text-align:left;padding:.75rem 1rem}.project-group-row small{font-weight:400;color:#627773;margin-left:.5rem}.project-group-label{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#6b817d;margin-right:.35rem}.project-group-card{overflow:hidden}.project-viewer-list{display:grid;gap:.55rem;padding:.8rem 1.1rem 1rem}.project-viewer-row{display:flex;align-items:center;gap:.75rem;border:1px solid #dce7e3;border-radius:.65rem;padding:.65rem .75rem;background:#fbfdfc}.project-viewer-row>span{display:grid;gap:.15rem;flex:1;min-width:0}.project-viewer-row small{color:#687d79}.project-viewer-row.current{border-color:#3b8074;background:#f0f8f5}.project-viewers-panel .section-heading{padding:1.1rem 1.1rem .35rem}.project-group-card .card-footer{border-top:1px solid #e3ece9}.project-group-card .project-card-main{padding-bottom:.7rem}
.project-backup-panel>summary{cursor:pointer;color:var(--blue);font-weight:650}.backup-actions{display:grid;grid-template-columns:minmax(220px,auto) minmax(280px,1fr);gap:1.25rem;align-items:start;margin:1rem 0}.backup-actions form{display:grid;gap:.75rem;max-width:640px}.backup-actions progress{width:100%;height:.7rem}.backup-status{min-height:1.2rem;margin:.1rem 0}.project-backup-panel>small{display:block;color:var(--muted);line-height:1.5}.project-backup-panel input[type=file]{max-width:100%}@media(max-width:760px){.backup-actions{grid-template-columns:1fr}}
.topbar-brand{display:inline-flex;align-items:center;gap:.45rem;letter-spacing:.08em;font-size:.75rem;font-weight:700;color:#527084}.topbar-brand b{font-weight:400;color:#b1c3cf}.topbar-brand i{width:8px;height:8px;border-radius:50%;background:#4c9a83;box-shadow:0 0 0 5px #dceee8}.account-pill{display:inline-flex;align-items:center;gap:.55rem;color:#314c60;font-size:.85rem;font-weight:600}.account-avatar{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#dcecf4;color:#276ca8;font-size:.78rem;font-weight:800}.reader-shell{background:linear-gradient(135deg,#f7fafb 0%,#f2f7f8 58%,#e9f3f0 100%)}.reader-shell .content{max-width:1500px}.reader-page-heading{margin-bottom:1.4rem}.reader-page-heading h1{font-size:clamp(2.2rem,4vw,3.5rem);font-weight:500;color:#17384d}.page-intro{color:#68808e;margin:.55rem 0 0;font-size:1rem}.reader-overview{display:flex;align-items:stretch;justify-content:space-between;gap:2rem;margin-bottom:2rem;padding:1.6rem 1.8rem;border:1px solid #d2e3e3;border-radius:16px;background:linear-gradient(115deg,#163e52,#236c76 62%,#4a9a87);color:#fff;box-shadow:0 18px 38px rgba(29,77,91,.16)}.reader-overview-copy{max-width:420px}.reader-kicker{font-size:.68rem;letter-spacing:.16em;font-weight:800;color:#b5e5d4}.reader-overview h2{font-size:1.65rem;line-height:1.2;margin:.5rem 0 .45rem;color:#fff}.reader-overview p{margin:0;color:#d6e9e8;font-size:.9rem}.reader-metrics{display:flex;align-items:center;gap:1.8rem;padding:.35rem 0}.reader-metrics div{display:grid;gap:.1rem;min-width:82px}.reader-metrics strong{font-size:2rem;line-height:1;color:#fff}.reader-metrics span{font-size:.72rem;color:#cce5e2}.reader-shell .project-grid{gap:1.35rem}.reader-shell .project-card{border-color:#d7e5e5;border-radius:15px;padding:0;box-shadow:0 8px 24px rgba(34,72,82,.05);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.reader-shell .project-card:hover{transform:translateY(-3px);border-color:#7fb7ac;box-shadow:0 16px 32px rgba(34,72,82,.12)}.reader-shell .project-card-main{padding:1.45rem 1.45rem .65rem}.reader-shell .project-card .card-top{margin-bottom:1.2rem}.reader-shell .project-card .type{color:#337d72;letter-spacing:.04em;text-transform:uppercase;font-size:.7rem}.reader-shell .project-card h2{font-size:1.35rem;color:#17384d}.reader-shell .project-viewer-list{padding:.85rem 1.15rem 1.1rem}.reader-shell .project-viewer-row{border-color:#dbe9e7;background:#f8fbfa;padding:.72rem .8rem}.reader-shell .project-viewer-row strong{font-size:.88rem;color:#1e5260}.reader-shell .project-viewer-row .button{min-height:34px;padding:.42rem .7rem;font-size:.76rem;border-radius:6px}.reader-shell .project-card .card-footer{padding:1rem 1.45rem;border-top:1px solid #e1ecea}.reader-shell .project-hosting-line{border-top-color:#e0eceb}.reader-shell footer{color:#78918f}
@media(max-width:700px){.reader-overview{display:grid;gap:1.3rem;padding:1.3rem}.reader-metrics{justify-content:space-between;gap:.8rem}.reader-metrics strong{font-size:1.55rem}.reader-metrics span{font-size:.68rem}.account-pill{font-size:0}.account-avatar{font-size:.76rem}.topbar-brand{font-size:.68rem}}
.reader-shell .page-intro{display:none}.project-card-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr))}.project-cover{height:178px;position:relative;overflow:hidden;border-radius:15px 15px 0 0;background:#254b61}.project-cover img{width:100%;height:100%;display:block;object-fit:cover}.project-cover-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,32,46,.04) 28%,rgba(11,32,46,.58) 100%);pointer-events:none}.project-cover-fallback{position:absolute;inset:0;display:grid;place-items:center;color:rgba(255,255,255,.88);font-size:.7rem;letter-spacing:.18em;font-weight:800;text-transform:uppercase;z-index:1}.project-cover.media-points{background:radial-gradient(circle at 24% 35%,#a1d4ed 0 1px,transparent 2px),radial-gradient(circle at 70% 60%,#4cb3a0 0 1.5px,transparent 3px),linear-gradient(135deg,#102f47,#1d7080 60%,#5aa48e);background-size:25px 22px,32px 29px,auto}.project-cover.media-inspection{background:linear-gradient(135deg,#23495d,#5b8791 54%,#a5c9bb)}.project-cover.media-xgrids{background:radial-gradient(ellipse at 46% 48%,#b7dfdf 0 2px,transparent 3px),linear-gradient(120deg,#173b53,#5596a1 52%,#c5e0d7)}.project-cover.media-panoramas{background:linear-gradient(180deg,#75b8c1 0 52%,#285c6b 53% 100%)}.project-cover.media-mesh{background:linear-gradient(145deg,#15394f,#3d7e8c)}.project-cover.media-splat{background:radial-gradient(ellipse at 32% 35%,#f6b96d 0 2px,transparent 4px),radial-gradient(ellipse at 69% 63%,#e783a1 0 2px,transparent 4px),linear-gradient(135deg,#32234b,#a75279)}.project-cover.media-gis{background:linear-gradient(135deg,#305d58,#6da38d 48%,#c0d6a5)}.project-expiry{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.75rem;padding-top:.7rem;border-top:1px solid #e0eceb;color:#71878c;font-size:.73rem}.project-expiry .hosting-status{font-size:.76rem}.reader-shell .project-card .project-viewer-list{margin-top:0}
.cover-remove-row{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;padding:0 1.5rem 1.2rem}.cover-remove-row .help{margin:0;flex:1;min-width:220px}.cover-remove-row button{min-height:36px;padding:.45rem .75rem}
.reader-shell .project-card{width:100%;max-width:100%;min-width:0;overflow:hidden}.project-card-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));min-width:0}.project-cover{width:100%;height:auto;aspect-ratio:16/9;max-height:220px;min-height:130px}.project-cover img{width:100%;max-width:100%;height:100%;max-height:100%;object-fit:cover}.reader-shell .project-viewer-row{min-width:0}.reader-shell .project-viewer-row>span{min-width:0;overflow:hidden}.reader-shell .project-viewer-row strong,.reader-shell .project-viewer-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:520px){.reader-shell .project-viewer-row{align-items:flex-start;flex-wrap:wrap}.reader-shell .project-viewer-row>span{flex-basis:100%}.reader-shell .project-viewer-row .button{flex:1 1 auto}}
.topbar-account{display:inline-flex;align-items:center;gap:1rem}.company-pill,.card-company{display:inline-flex;align-items:center;gap:.45rem;min-width:0;color:#31596a}.company-pill{font-size:.78rem}.company-pill strong{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.company-pill img,.company-initial,.card-company img{width:28px;height:28px;border-radius:7px;object-fit:cover}.company-initial{display:grid;place-items:center;background:#dceee8;color:#267565;font-size:.75rem;font-weight:800}.card-company{font-size:.7rem;font-weight:700;color:#337d72;max-width:75%;overflow:hidden}.card-company span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-company img{width:22px;height:22px;border-radius:5px}.logo-remove-row{display:flex;align-items:center;gap:.6rem;margin-top:.6rem}.logo-remove-row button{min-height:32px;padding:.35rem .7rem;font-size:.78rem}@media(max-width:700px){.topbar-account{gap:.5rem}.company-pill strong{max-width:110px}.company-pill{font-size:.7rem}}
.shared-projects{min-width:170px}.shared-projects summary{cursor:pointer;color:var(--blue);font-weight:600}.shared-projects ul{margin:.55rem 0 0;padding-left:1.1rem}.shared-projects li{margin:.2rem 0;font-size:.8rem}.shared-projects a{overflow-wrap:anywhere}
.favorite-form{margin:0}.favorite-button{min-height:30px;width:32px;padding:0;border:0;background:transparent;color:#d68b1b;font-size:1.35rem;line-height:1}.favorite-button:hover{background:#fff5df;border-color:transparent}.project-storage{margin-top:.45rem;color:#748b8e;font-size:.72rem}
.gallery-viewer-types{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 0 1rem}.gallery-viewer-types span{display:inline-flex;align-items:center;padding:.28rem .55rem;border:1px solid #d9e9e5;border-radius:999px;background:#f2f8f6;color:#38766c;font-size:.68rem;font-weight:700;line-height:1.25}
.gallery-intro{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin:0 0 1.1rem;padding:1.2rem 1.4rem;border:1px solid #d8e7e5;border-radius:14px;background:linear-gradient(115deg,#edf6f4,#f7fafb)}.gallery-intro h2{margin:0 0 .35rem;color:#17384d;font-size:1.3rem}.gallery-intro p:last-child{margin:0;color:#68808e;font-size:.9rem}.gallery-intro .eyebrow{margin-bottom:.4rem}.gallery-count{flex:none;padding:.45rem .7rem;border-radius:999px;background:white;color:#337d72;font-size:.8rem;font-weight:700}
.gallery-filters{display:flex;align-items:end;gap:.85rem;padding:1rem 1.2rem}.gallery-filters label{flex:1;margin:0}.gallery-filters input,.gallery-filters select{min-height:42px;padding:.55rem .7rem}.gallery-filter-actions{display:flex;gap:.5rem}
.gallery-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;gap:1.15rem}.gallery-project-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid #d8e5e5;border-radius:14px;background:white;color:var(--ink);box-shadow:0 7px 22px rgba(29,67,79,.06);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.gallery-project-card:hover{transform:translateY(-3px);border-color:#7fb7ac;box-shadow:0 15px 30px rgba(29,67,79,.13)}
.gallery-project-image{position:relative;display:grid;place-items:center;aspect-ratio:16/9;overflow:hidden;background-color:#254b61}.gallery-project-image.media-points{background:radial-gradient(circle at 24% 35%,#a1d4ed 0 1px,transparent 2px),radial-gradient(circle at 70% 60%,#4cb3a0 0 1.5px,transparent 3px),linear-gradient(135deg,#102f47,#1d7080 60%,#5aa48e);background-size:25px 22px,32px 29px,auto}.gallery-project-image.media-inspection{background:linear-gradient(135deg,#23495d,#5b8791 54%,#a5c9bb)}.gallery-project-image.media-xgrids{background:radial-gradient(ellipse at 46% 48%,#b7dfdf 0 2px,transparent 3px),linear-gradient(120deg,#173b53,#5596a1 52%,#c5e0d7)}.gallery-project-image.media-panoramas{background:linear-gradient(180deg,#75b8c1 0 52%,#285c6b 53% 100%)}.gallery-project-image.media-mesh{background:linear-gradient(145deg,#15394f,#3d7e8c)}.gallery-project-image.media-splat{background:radial-gradient(ellipse at 32% 35%,#f6b96d 0 2px,transparent 4px),radial-gradient(ellipse at 69% 63%,#e783a1 0 2px,transparent 4px),linear-gradient(135deg,#32234b,#a75279)}.gallery-project-image.media-gis{background:linear-gradient(135deg,#305d58,#6da38d 48%,#c0d6a5)}.gallery-project-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.gallery-image-shade{position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(12,35,47,.28));pointer-events:none}.gallery-image-fallback{color:rgba(255,255,255,.9);font-size:.68rem;font-weight:800;letter-spacing:.17em;text-shadow:0 1px 5px rgba(0,0,0,.25)}
.gallery-project-info{display:flex;flex-direction:column;align-items:flex-start;flex:1;min-width:0;padding:1rem 1.1rem 1.05rem}.gallery-company{display:flex;align-items:center;gap:.5rem;max-width:100%;color:#36796e;font-size:.76rem;font-weight:700}.gallery-company>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gallery-company img,.gallery-company-mark{width:25px;height:25px;flex:none;border-radius:7px;object-fit:cover}.gallery-company-mark{display:grid;place-items:center;background:#e5f2ee;color:#34796d;font-size:.7rem}.gallery-project-info h2{margin:.7rem 0 .8rem;color:#17384d;font-size:1.2rem;overflow-wrap:anywhere}.gallery-card-link{display:flex;justify-content:space-between;gap:.7rem;width:100%;margin-top:auto;padding-top:.75rem;border-top:1px solid #e7eeee;color:#36796e;font-size:.8rem;font-weight:700}.gallery-page-status{padding:.5rem .7rem;color:var(--muted);font-size:.85rem}.gallery-filters .button{min-height:42px}
@media(min-width:1500px){.gallery-card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1000px){.gallery-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.gallery-filters{align-items:stretch;flex-direction:column}.gallery-filter-actions>*{flex:1}.gallery-intro{align-items:flex-start;flex-direction:column}}@media(max-width:480px){.gallery-card-grid{grid-template-columns:1fr}}
.media-facade{background:linear-gradient(135deg,#d9d0bc 0%,#bba98a 50%,#ece3d1 100%)}.media-facade:before{width:43%;height:68%;left:29%;top:18%;border-radius:3px;background:repeating-linear-gradient(90deg,transparent 0 18%,rgba(89,70,49,.42) 18.5% 19.5%,transparent 20% 25%),repeating-linear-gradient(0deg,transparent 0 19%,rgba(89,70,49,.38) 19.5% 20.5%,transparent 21% 26%),linear-gradient(90deg,#c8b99d,#eee3cd 45%,#baa687);box-shadow:0 10px 24px rgba(57,44,31,.24);border:1px solid rgba(93,72,48,.45)}.media-facade:after{width:12%;height:22%;left:45%;top:41%;border-radius:2px;background:rgba(54,103,139,.52);border:2px solid rgba(255,255,255,.75);box-shadow:0 0 0 7px rgba(198,76,58,.22)}
.visor-tools-heading{display:block;margin-top:.85rem;padding-top:.7rem;border-top:1px solid #e3ebef;color:#718697;font-size:.62rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.visor-tools{display:grid;gap:.38rem;list-style:none;margin:.55rem 0 .8rem;padding:0}.visor-tools li{position:relative;padding-left:.85rem;color:#536b7a;font-size:.73rem;line-height:1.38}.visor-tools li:before{content:"";position:absolute;left:.05rem;top:.43em;width:.34rem;height:.34rem;border-radius:50%;background:#4e91bd}.visor-card:hover .visor-tools li:before{background:#246da0}
.viewer-move-control{margin-left:3rem;padding:.55rem .7rem;border:1px solid #dce7e3;border-radius:.6rem;background:#f7fbf9}.viewer-move-control>summary{cursor:pointer;color:#276ca8;font-size:.82rem;font-weight:700}.viewer-move-form{display:grid;gap:.65rem;padding:.7rem 0 .1rem}.viewer-move-form label{display:grid;gap:.3rem;color:#435d70;font-size:.8rem;font-weight:600}.viewer-move-form select{max-width:28rem}.viewer-move-form .help{margin:0}.viewer-move-form button{justify-self:start}@media(max-width:620px){.viewer-move-control{margin-left:0}}
.catalog-lead{max-width:72ch;margin:0 0 1.35rem}.catalog-grid .panel{display:flex;flex-direction:column;margin-bottom:0}.catalog-grid .panel>a.button:last-child,.catalog-grid .directory-actions{margin-top:auto}.admin-shell .sidebar nav{min-height:0;overflow-y:auto}@media(max-width:650px){.admin-shell .sidebar nav{overflow-y:visible}}
.user-tool-access{margin:.45rem 0;padding:.55rem;border:1px solid #dbe4e9;border-radius:8px;background:#f8fafb}.user-tool-access>summary{font-weight:700;cursor:pointer}.user-tool-access-form{display:grid;gap:.55rem;margin-top:.7rem}.user-tool-access fieldset{display:grid;gap:.35rem;max-height:15rem;overflow:auto;margin:0;padding:.65rem;border:1px solid #dbe4e9;border-radius:6px}.user-tool-access legend{padding:0 .25rem;font-weight:650}.user-tool-access fieldset label{display:flex;align-items:flex-start;gap:.4rem;font-size:.85rem}.user-tool-access input[type=checkbox]{flex:0 0 auto;margin:.15rem 0}.user-tool-access .help{margin:.1rem 0;font-size:.8rem}
.usage-filters{grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem 1rem;margin:1.4rem 0 1.8rem;padding:1.2rem;border:1px solid var(--border);border-radius:8px;background:var(--wash)}.usage-filters .form-actions{grid-column:1/-1;display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;margin-top:.45rem}.usage-filters .form-actions small{flex:1 1 250px}.usage-filters .button{min-height:42px}@media(max-width:900px){.usage-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.usage-filters{grid-template-columns:1fr}.usage-filters .form-actions{align-items:stretch;flex-direction:column}.usage-filters .form-actions>*{width:100%;text-align:center}}
.project-access-cell{min-width:220px}.access-line{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;margin-bottom:.45rem}.access-line .badge{font-size:.68rem}.access-revoke-form{display:inline-flex;margin:0}.access-revoke-form button{min-height:29px;padding:.3rem .55rem;font-size:.72rem}.project-access-list{margin-top:.35rem;padding:.4rem .5rem;border:1px solid var(--border);border-radius:7px;background:#f8fbfa}.project-access-list>summary{cursor:pointer;color:var(--blue);font-size:.76rem;font-weight:700}.project-access-list>strong{display:block;margin:.65rem 0 .3rem;color:var(--ink);font-size:.72rem}.project-access-list ul{display:grid;gap:.4rem;margin:.25rem 0 .5rem;padding:0;list-style:none}.project-access-list li{display:flex;align-items:center;justify-content:space-between;gap:.45rem;font-size:.76rem}.project-access-list li>span{min-width:0;overflow-wrap:anywhere}.project-access-list li small{display:block;color:var(--muted);font-size:.68rem}.project-access-list>small{display:block;margin:.4rem 0;color:var(--muted);font-size:.68rem;line-height:1.4}.project-access-list p{margin:.45rem 0;font-size:.75rem}

/* Optional fields in the new-project form only. */
.project-create-form .project-create-options{margin:0 0 1rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.create .project-create-options>summary{padding:.8rem 0;border-bottom:0;font-size:.875rem;color:var(--muted)}
.project-create-options>.form-grid{padding:.35rem 0 .2rem}
.project-create-form>label.full{margin-bottom:1.25rem}

/* Banner discreto de consentimiento para estadísticas de la zona pública. */
.lc-consent{position:fixed;z-index:10000;left:20px;right:20px;bottom:64px;display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1040px;margin:auto;padding:18px 20px;border:1px solid #506477;border-radius:14px;background:#101b27;color:#f3f7fa;box-shadow:0 16px 50px #07111dbb;font:inherit}.lc-consent-copy strong{display:block;font-size:15px}.lc-consent-copy p{margin:5px 0 0;color:#c1ceda;font-size:13px;line-height:1.5}.lc-consent-actions{display:flex;flex:none;gap:8px}.lc-consent-actions button,.lc-consent-settings{min-height:38px;border:1px solid #8495a5;border-radius:8px;padding:8px 12px;background:#172737;color:#f3f7fa;font:inherit;font-size:13px;cursor:pointer}.lc-consent-actions .lc-consent-accept{border-color:#5ac29a;background:#167b62}.lc-consent-settings{position:fixed;z-index:9999;right:16px;bottom:16px;min-height:32px;padding:5px 10px;background:#101b27dd;font-size:12px}.terrain-media-preview{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;background:radial-gradient(ellipse at 48% 52%,#315441 0,#182e2c 38%,#101c29 78%);color:#e9f4ed}.terrain-media-preview span{font-size:14px;letter-spacing:.28em;color:#a8c4b5}.terrain-media-preview strong{font-size:clamp(28px,4vw,46px);letter-spacing:.14em}.terrain-media-preview small{font-size:10px;letter-spacing:.2em;color:#bac8c0}.terrain-info-card{box-sizing:border-box;min-height:250px;height:clamp(250px,31vw,390px);padding:clamp(22px,4vw,46px);border:1px solid #344d42;border-radius:14px;background:radial-gradient(ellipse at 75% 20%,#304c3a,#14251f 60%,#101b27);color:#f0f5f0}.terrain-info-card>span{font-size:12px;letter-spacing:.25em;color:#9db7a2}.terrain-info-card>strong{display:block;max-width:440px;margin:15px 0;font-size:clamp(21px,3vw,32px);line-height:1.2}.terrain-info-card ul{padding-left:18px;color:#cad8ce;line-height:1.8}@media(max-width:650px){.lc-consent{left:10px;right:10px;bottom:58px;align-items:stretch;flex-direction:column;gap:14px;padding:15px}.lc-consent-actions{justify-content:flex-end}.lc-consent-actions button{flex:1}.lc-consent-settings{right:10px;bottom:10px}}
