:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#182326;background:#f4f7f5;font-synthesis:none;text-rendering:optimizeLegibility;--ink:#182326;--muted:#657477;--line:#dce5e1;--surface:#fff;--canvas:#f4f7f5;--accent:#0b7057;--accent-hover:#075b46;--mint:#e5f3ed;--soft:#f5f8f6;--danger:#b33b39;--danger-soft:#fff0ed;--warning:#805b17;--warning-soft:#fff6df;--shadow:0 16px 45px #17332a0c;--radius:16px;color-scheme:light}
:root[data-theme="dark"]{color-scheme:dark;--ink:#ecf3f0;--muted:#a1b1ac;--line:#32423d;--surface:#202d29;--canvas:#15211d;--accent:#63c49e;--accent-hover:#7ad5af;--mint:#213b31;--soft:#1b2924;--danger:#ff928d;--danger-soft:#432b2a;--warning:#f1ca70;--warning-soft:#3b3422;--shadow:0 16px 45px #0003}
*{box-sizing:border-box}html{min-width:320px;scroll-behavior:smooth}body{margin:0;min-height:100dvh;background:var(--canvas);color:var(--ink);font-size:16px;line-height:1.55}button,input,textarea{font:inherit}button{touch-action:manipulation}a{color:inherit}.hidden{display:none!important}.skip-link{position:absolute;top:-100px;left:1rem;z-index:10;padding:.75rem 1rem;background:var(--surface);border-radius:8px}.skip-link:focus{top:1rem}:focus-visible{outline:3px solid #38a77b;outline-offset:3px}.app-shell{min-height:100dvh;display:flex;flex-direction:column}.topbar{height:76px;padding:0 clamp(1.1rem,4vw,4rem);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--surface)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none}.brand-mark{width:37px;height:37px;border-radius:11px;background:#0b7057;color:white;display:grid;place-items:center;font-weight:800;font-size:1.25rem}.brand strong{display:block;font-size:1.15rem;line-height:1.05;letter-spacing:-.04em}.brand small{display:block;margin-top:3px;font-size:.58rem;letter-spacing:.18em;color:var(--muted);font-weight:750}.topbar-right{display:flex;align-items:center;gap:12px}.environment{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:.84rem}.environment i,.status-dot{width:8px;height:8px;border-radius:50%;background:#48a979;display:inline-block}.icon-button{display:inline-grid;place-items:center;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);cursor:pointer;font-size:1.2rem}.main-content{width:min(100% - 2.5rem,1480px);margin:0 auto;padding:clamp(2rem,5vw,4.6rem) 0;flex:1}.login-layout{min-height:min(700px,72dvh);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(350px,.85fr);align-items:center;gap:clamp(2rem,8vw,8rem)}.login-story{max-width:640px;padding:2rem 0}.eyebrow,.section-kicker,.side-label{font-size:.72rem;font-weight:800;letter-spacing:.15em;color:var(--accent)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2.3rem,5vw,4.8rem);line-height:1.04;letter-spacing:-.055em;margin:.85rem 0 1rem}h1 em{font-style:normal;color:var(--accent)}h2{font-size:1.65rem;line-height:1.2;letter-spacing:-.035em;margin:.6rem 0 .65rem}h3{font-size:1.12rem;margin-bottom:.35rem}.login-story>p{font-size:1.13rem;color:var(--muted);max-width:48ch}.local-note{display:flex;align-items:flex-start;gap:12px;margin-top:3rem;max-width:450px;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--muted);font-size:.9rem}.note-icon{flex:0 0 22px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--mint);color:var(--accent);font-weight:800}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.login-card{padding:clamp(1.5rem,3vw,2.5rem)}.login-card .muted{margin-bottom:1.8rem}.muted{color:var(--muted)}label{display:block;margin:.95rem 0 .45rem;font-size:.9rem;font-weight:650}input,textarea{width:100%;min-height:48px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);padding:.75rem .9rem}textarea{min-height:124px;resize:vertical}input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--muted),transparent 25%)}input:focus,textarea:focus{outline:3px solid color-mix(in srgb,var(--accent),transparent 78%);border-color:var(--accent)}.button{min-height:46px;padding:.7rem 1rem;border:1px solid transparent;border-radius:10px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:12px;text-decoration:none;transition:background .15s,border-color .15s,transform .15s}.button:hover{transform:translateY(-1px)}.button:disabled{opacity:.6;cursor:wait;transform:none}.button-primary{background:#0b7057;color:white}.button-primary:hover{background:#075b46}.button-secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}.button-secondary:hover,.button-quiet:hover{background:var(--soft)}.button-quiet{background:transparent;border-color:transparent;color:var(--muted)}.button-wide{width:100%;margin-top:1.25rem;min-height:50px}.fine-print{font-size:.79rem;color:var(--muted);margin:.9rem 0 0}.field-error{min-height:1.2rem;margin-top:.4rem;color:var(--danger);font-size:.86rem}.footer{padding:1.1rem clamp(1.1rem,4vw,4rem);display:flex;justify-content:space-between;border-top:1px solid var(--line);font-size:.8rem;color:var(--muted);background:var(--surface)}.footer-sep{padding:0 .35rem;color:var(--line)}.page-heading{display:flex;justify-content:space-between;gap:1.5rem;align-items:end;margin-bottom:2rem}.page-heading h1{font-size:clamp(2rem,4vw,3.25rem);margin:.5rem 0}.slash{margin:0 .4rem;color:var(--muted)}.workspace{display:grid;grid-template-columns:minmax(220px,260px) minmax(0,1fr);gap:1.5rem;align-items:start}.side-card{padding:1.25rem;position:sticky;top:1rem}.side-label{color:var(--muted);padding:.3rem .55rem .8rem}.nav-item{display:flex;align-items:center;gap:10px;min-height:46px;padding:.65rem .7rem;border-radius:9px;text-decoration:none;color:var(--muted);font-weight:650}.nav-item:hover,.nav-item.active{background:var(--mint);color:var(--accent)}.nav-count{margin-left:auto;min-width:24px;padding:1px 7px;text-align:center;border-radius:20px;background:var(--soft);font-size:.75rem}.side-footer{border-top:1px solid var(--line);margin-top:1.2rem;padding:1rem .55rem .2rem;display:flex;gap:9px;align-items:center;color:var(--muted);font-size:.78rem}.content-area{min-width:0}.content-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.content-toolbar h2{margin:0;font-size:1.2rem}.toolbar-meta{color:var(--muted);font-size:.86rem}.ticket-list{display:grid;gap:.85rem}.ticket-card{width:100%;text-align:left;padding:1.15rem 1.25rem;cursor:pointer;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 6px 22px #17332a05}.ticket-card:hover{border-color:color-mix(in srgb,var(--accent),var(--line) 35%)}.ticket-top{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.ticket-title{font-weight:750;font-size:1.02rem;overflow-wrap:anywhere}.ticket-id{font-family:ui-monospace,SFMono-Regular,monospace;color:var(--muted);font-size:.75rem}.ticket-desc{margin:.5rem 0;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ticket-meta{display:flex;gap:1rem;flex-wrap:wrap;color:var(--muted);font-size:.8rem}.badge{display:inline-flex;align-items:center;gap:6px;padding:.25rem .6rem;border-radius:20px;background:var(--soft);font-size:.76rem;font-weight:750;white-space:nowrap}.badge::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.badge-open,.badge-awaiting_connection,.badge-awaiting_reconnection{color:#986317;background:var(--warning-soft)}.badge-ready,.badge-in_progress{color:var(--accent);background:var(--mint)}.badge-completed,.badge-cancelled{color:var(--muted)}.empty-state{padding:clamp(2rem,6vw,4rem) 1.5rem;text-align:center;border:1px dashed var(--line);border-radius:14px;background:var(--surface)}.empty-icon{width:52px;height:52px;margin:0 auto 1rem;display:grid;place-items:center;border-radius:16px;background:var(--mint);color:var(--accent);font-size:1.4rem}.empty-state p{color:var(--muted);max-width:42ch;margin:.5rem auto 1.2rem}.error-panel{padding:1.3rem;border:1px solid color-mix(in srgb,var(--danger),var(--line) 60%);border-radius:12px;background:var(--danger-soft);color:var(--danger)}.ticket-detail{display:grid;gap:1rem}.detail-header,.detail-section{padding:1.4rem}.detail-header-top{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.detail-description{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted)}.detail-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.2rem;padding-top:1rem;border-top:1px solid var(--line)}.detail-field small{display:block;color:var(--muted);margin-bottom:.25rem}.detail-field strong{font-size:.9rem;overflow-wrap:anywhere}.equipment-panel{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.1rem;border-radius:12px;border:1px solid var(--line);background:var(--soft)}.equipment-panel p{margin:.3rem 0 0;color:var(--muted);font-size:.88rem}.connection-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin-top:1rem}.connection-item{padding:.85rem;border-radius:10px;background:var(--soft)}.connection-item small{display:block;color:var(--muted);font-size:.75rem}.connection-item strong{display:block;margin-top:.2rem;font-size:.88rem}.action-row{display:flex;gap:.65rem;flex-wrap:wrap}.action-row .button{min-height:44px}.timeline{list-style:none;margin:0;padding:0}.timeline li{position:relative;padding:0 0 1.3rem 1.5rem;border-left:1px solid var(--line);margin-left:.35rem}.timeline li:last-child{border-left-color:transparent;padding-bottom:0}.timeline li::before{content:"";position:absolute;left:-5px;top:5px;width:9px;height:9px;border-radius:50%;background:var(--accent)}.event-head{display:flex;justify-content:space-between;gap:.75rem;font-size:.8rem;color:var(--muted)}.event-message{margin:.35rem 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.event-form{display:flex;gap:.65rem;margin-top:1rem}.event-form input{flex:1}.notice{padding:1rem 1.15rem;margin:0 0 1rem;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.notice-warning{margin-top:1.2rem;background:var(--warning-soft);border-color:color-mix(in srgb,var(--warning),var(--line) 70%);color:var(--warning);padding:1rem;border-radius:10px;font-size:.9rem}.modal{width:min(100% - 2rem,570px);max-height:min(90dvh,800px);overflow:auto;padding:clamp(1.3rem,4vw,2rem);border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--ink);box-shadow:0 24px 100px #0004}.modal::backdrop{background:#10231db3;backdrop-filter:blur(2px)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.dialog-close,.enrollment-close{flex-shrink:0}.modal-actions{display:flex;justify-content:flex-end;gap:.65rem;margin-top:1.2rem}.code-box{display:flex;gap:.6rem;align-items:center;margin-top:1rem}.code-box code{min-width:0;flex:1;padding:1rem;border-radius:10px;background:var(--soft);font-size:1.05rem;overflow-wrap:anywhere;user-select:all}.loading{padding:2rem 0;color:var(--muted)}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;vertical-align:-3px;margin-right:8px}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1500px){:root{font-size:17px}.main-content{width:min(100% - 4rem,1760px)}.workspace{grid-template-columns:minmax(250px,310px) minmax(0,1fr);gap:2rem}.ticket-card{padding:1.4rem 1.55rem}.detail-header,.detail-section{padding:1.8rem}}
@media(min-width:2000px){:root{font-size:18px}.main-content{width:min(100% - 8rem,2180px)}.workspace{grid-template-columns:minmax(290px,360px) minmax(0,1fr);gap:2.4rem}}
@media(min-width:2500px){:root{font-size:19px}.main-content{width:min(100% - 10rem,2380px)}}
@media(max-width:900px){.main-content{width:min(100% - 2rem,760px);padding:2rem 0}.login-layout{grid-template-columns:1fr;gap:1rem;min-height:0}.login-story{padding:.5rem 0}.login-story h1{font-size:clamp(2.5rem,9vw,4rem)}.login-story>p{max-width:56ch}.local-note{margin-top:1.5rem}.login-card{max-width:none}.workspace{grid-template-columns:1fr}.side-card{position:static;padding:.75rem;display:flex;align-items:center;gap:.5rem}.side-label,.side-footer{display:none}#navigation{display:flex;flex:1;gap:.3rem}#navigation .nav-item{flex:1;justify-content:center;white-space:nowrap}.nav-count{margin-left:.1rem}}
@media(max-width:600px){.topbar{height:66px;padding:0 1rem}.main-content{width:calc(100% - 2rem);padding:1.5rem 0}.environment{font-size:.74rem}.topbar-right{gap:6px}.page-heading{align-items:flex-start;flex-direction:column;margin-bottom:1.2rem}.page-heading #heading-actions{width:100%}.page-heading #heading-actions .button{width:100%}.workspace{gap:.85rem}.side-card{overflow-x:auto}#navigation{min-width:0}#navigation .nav-item{font-size:.8rem;padding:.55rem .35rem;gap:5px}.ticket-card{padding:1rem}.ticket-top{align-items:flex-start;flex-direction:column}.detail-header-top{flex-direction:column}.detail-fields,.connection-list{grid-template-columns:1fr}.equipment-panel{flex-direction:column}.event-form{flex-direction:column}.event-form .button{width:100%}.content-toolbar{align-items:flex-start;flex-direction:column}.footer{padding:1rem;gap:.5rem;flex-direction:column}.modal-actions{flex-wrap:wrap}.modal-actions .button{flex:1}.code-box{align-items:stretch;flex-direction:column}.login-layout{padding-bottom:1rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.detail-actions{margin-bottom:1rem}.equipment-wrap{margin-top:.9rem}.events-wrap{margin-top:1.15rem}
.download-list{display:grid;gap:.65rem;margin:1rem 0}.download-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;border:1px solid var(--line);border-radius:10px;background:var(--soft)}.download-item small{display:block;margin-top:.2rem;color:var(--muted);overflow-wrap:anywhere}.download-item .button{flex:0 0 auto}#enrollment-url,#enrollment-code,.detail-section code{overflow-wrap:anywhere}
.password-layout{min-height:min(700px,72dvh);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(350px,.85fr);align-items:center;gap:clamp(2rem,8vw,8rem)}.password-story{max-width:880px;padding:2rem 0}.password-story>p{max-width:48ch;color:var(--muted);font-size:1.13rem}.password-layout .login-card{width:100%;max-width:680px}.password-layout .fine-print{margin:.35rem 0 0}.password-layout input{font-size:1rem}.password-layout .field-error:empty{min-height:.3rem}.password-layout .button-wide{margin-top:1.1rem}
@media(min-width:2000px){.password-story{max-width:1040px}}
@media(min-width:1500px){.password-layout{gap:clamp(4rem,9vw,12rem)}}
@media(max-width:900px){.password-layout{grid-template-columns:1fr;gap:1rem;min-height:0}.password-story{padding:.5rem 0}.password-story h1{font-size:clamp(2.5rem,9vw,4rem)}.password-story>p{max-width:56ch}.password-layout .login-card{max-width:none}}
@media(max-width:600px){.password-layout{padding-bottom:1rem}}
