:root{font-family:Inter,system-ui,sans-serif;background:#06121e;color:#f2f7fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}.display{width:100vw;min-height:100vh;padding:2.5vw;display:grid;grid-template-columns:18% minmax(0,1fr) 29%;grid-template-rows:15% 1fr 16%;gap:1.2vw;overflow:hidden;background:radial-gradient(circle at 70% 0,#14365b,#091824 44%,#050d15)}.display.map-off{grid-template-columns:18% 1fr}.display header{grid-column:1/-1;display:flex;justify-content:space-between;border-bottom:1px solid #284359;padding-bottom:1.4vh}.brand{font-weight:750;font-size:clamp(1.3rem,2.1vw,5rem);letter-spacing:-.04em}.muted,.eyebrow,.notice-meta,.panel-title span,small{color:#a6bacb}.datetime{text-align:center;display:grid}.datetime b{font-size:clamp(2rem,3.5vw,9rem);line-height:1}.datetime span{font-size:clamp(.8rem,1.25vw,3rem);margin-top:.4rem}.sun{font-size:clamp(.75rem,1.1vw,2.7rem);color:#d8e5ef}.left{border-right:1px solid #284359;padding-right:1.4vw;display:grid;align-content:start;gap:2vh}.block{padding-bottom:2vh;border-bottom:1px solid #203b50}.block p{font-size:clamp(.75rem,1.1vw,2.7rem);line-height:1.55;margin:1vh 0}.eyebrow{text-transform:uppercase;font-size:clamp(.62rem,.8vw,1.7rem);font-weight:700;letter-spacing:.1em}.main-notices{padding:0 1vw;min-width:0}.notice{height:100%;position:relative;overflow:hidden}.notice h1{font-size:clamp(1.8rem,3.1vw,9rem);line-height:1.04;letter-spacing:-.045em;max-width:18ch;margin:3vh 0 2vh}.notice-body{font-size:clamp(1rem,1.65vw,4rem);line-height:1.5;max-width:35ch}.notice-image{position:absolute;right:1vw;bottom:1vw;max-width:35%;max-height:38%;object-fit:cover;border-radius:.5rem;border:1px solid #426078}.empty{display:grid;align-content:center}.traffic{border-left:1px solid #284359;padding-left:1.4vw;display:grid;grid-template-rows:auto 1fr auto;min-width:0;gap:.6vh}.panel-title{font-weight:700;font-size:clamp(.75rem,1.15vw,2.7rem);display:flex;justify-content:space-between;gap:.5rem}.traffic img{width:100%;height:100%;min-height:0;object-fit:contain;background:#0e2232;border-radius:.4rem}.map-empty{display:grid;place-items:center;background:#0e2232;color:#9db0c0}.warn{color:#ffc875!important}.display footer{grid-column:1/-1;border-top:1px solid #284359;padding-top:1.5vh;display:flex;align-items:center;justify-content:space-between;gap:2vw;font-size:clamp(.7rem,1.05vw,2.5rem)}.line{display:flex;gap:.8vw;align-items:center}.line b{background:#e9456c;padding:.45em;border-radius:.2em}.demo{color:#ffd982;border:1px solid #715b24;padding:.35em .55em;border-radius:.25em}.status{color:#a8c9bb}.status i{display:inline-block;width:.55em;height:.55em;background:#4ee29a;border-radius:50%;margin-right:.3em}.loading,.login{min-height:100vh;display:grid;place-items:center}.login{background:radial-gradient(circle at top,#17345a,#07131f 60%)}.login form,.editor,.settings,.compact-form{background:#fff;color:#172431;border:1px solid #d7e2ea;border-radius:.7rem;padding:1.3rem;display:grid;gap:1rem}.login form{width:min(90vw,27rem);background:#0c1d2c;color:#fff;border-color:#284359}.login label,.editor label,.settings label{display:grid;gap:.4rem}.login input,.editor input,.editor select,.editor textarea,.settings textarea,.compact-form input,.compact-form select{padding:.65rem;border:1px solid #38546a;border-radius:.35rem;background:#07131f;color:#fff}.login button,button,.editor>button,.settings>button,.compact-form button{border:0;border-radius:.35rem;background:#55b7f8;color:#03111d;font-weight:750;padding:.7rem 1rem;cursor:pointer}.error{color:#f27188}.admin{min-height:100vh;background:#eef3f7;color:#172431;display:grid;grid-template-columns:16rem 1fr}.admin nav{background:#0d2030;padding:1.5rem;display:grid;align-content:start;gap:.35rem;color:#eaf4fb}.admin nav .brand{margin-bottom:1.8rem}.admin nav button{background:transparent;color:#c8d9e6;text-align:left}.admin nav button.active{background:#173c56;color:#fff}.admin nav button:last-child{margin-top:2rem;color:#f8b7c2}.admin-body{padding:2.3rem;overflow:auto}.two-col{display:grid;grid-template-columns:minmax(18rem,.8fr) minmax(22rem,1fr);gap:2rem;max-width:1200px}.notice-list{display:grid;gap:.6rem}.notice-row{display:grid;gap:.2rem;background:#fff;color:#173041;border:1px solid #d7e2ea;text-align:left}.notice-row span{font-size:.85rem;color:#637687}.editor textarea{min-height:9rem;resize:vertical}.file{color:#268259}.settings{max-width:48rem}.settings textarea{min-height:3rem}.compact-form{margin-top:1rem}.check{display:flex!important;gap:.6rem;align-items:center}.preview{width:min(100%,1100px);border:1px solid #98aab8;overflow:hidden}.preview .display{width:100%;min-height:0;aspect-ratio:16/9;font-size:70%;padding:2.5vw}.preview .notice h1{font-size:2.6vw}.preview .notice-body{font-size:1.3vw}@media(max-width:900px){.display{grid-template-columns:26% 1fr;grid-template-rows:auto auto auto auto;overflow:auto}.display header{grid-column:1/-1}.traffic{grid-column:1/-1;border-left:0;border-top:1px solid #284359;padding:1rem 0;min-height:40vh}.admin{grid-template-columns:1fr}.admin nav{grid-template-columns:repeat(4,auto)}.admin nav .brand{grid-column:1/-1;margin:0}.admin nav button:last-child{margin:0}.two-col{grid-template-columns:1fr}.admin-body{padding:1rem}}.display{display:block}.burn-shift{min-height:calc(100vh - 5vw);display:grid;grid-template-columns:18% minmax(0,1fr) 29%;grid-template-rows:15% 1fr 16%;gap:1.2vw;transition:none}.display.map-off .burn-shift{grid-template-columns:18% minmax(0,1fr)}.muted,.notice-meta,.traffic small{font-size:clamp(.75rem,.95vw,2.3rem)}.notice-content{display:flex;gap:1.2vw;align-items:flex-start}.notice-image{position:static!important;margin:0;max-width:35%;max-height:none;flex:0 0 35%}.notice-image img{width:100%;max-height:32vh;object-fit:contain;border-radius:.5rem;border:1px solid #426078}.page-preview{padding:.75rem;background:#eaf2f7;border-radius:.35rem;max-height:11rem;overflow:auto}.page-preview p{margin:.45rem 0 0;white-space:normal}.forecast{display:grid;gap:.4rem}.forecast div{display:grid;grid-template-columns:4rem 1fr;gap:.2rem}.forecast small{grid-column:1/-1}.status.offline{color:#ffc875}.audit{max-height:65vh;overflow:auto}.audit p{border-bottom:1px solid #d7e2ea;padding:.5rem 0;margin:0}@media(max-width:900px){.burn-shift,.display.map-off .burn-shift{grid-template-columns:26% 1fr;grid-template-rows:auto auto auto auto}.notice-content{display:block}.notice-image{max-width:100%;margin-top:1rem}}.display{height:100vh;min-height:0}.burn-shift{height:calc(100vh - 5vw);min-height:0;grid-template-rows:15% minmax(0,1fr) 16%}.left,.main-notices,.traffic{min-height:0}.notice h1{font-size:clamp(1.8rem,2.5vw,6rem);max-width:none;margin:1.5vh 0;overflow-wrap:anywhere}.notice-body{font-size:clamp(1rem,1.5vw,3.6rem);line-height:1.4;overflow-wrap:anywhere;min-width:0;flex:1}.notice-image img{max-height:22vh}.notice-meta{display:flex;justify-content:space-between;gap:1vw}.forecast{font-size:clamp(.9rem,1.05vw,2.6rem);gap:.5vh;margin-top:1vh}.forecast div{grid-template-columns:2.8em 1fr}.forecast small{font-size:clamp(.85rem,.95vw,2.3rem);line-height:1.3}.block>b{font-size:clamp(.9rem,1.1vw,2.7rem);display:block;overflow-wrap:anywhere}.block{min-height:0}.block p{overflow-wrap:anywhere}.preview .display{height:auto;min-height:0}.preview .burn-shift{height:56.25vw;max-height:619px}.preview{background:#07131f}.display-preview-frame{display:block;width:100%;max-width:1100px;aspect-ratio:16/9;border:0;background:#07131f}.block p{white-space:pre-line}.display .lucide{width:1.15em;height:1.15em;flex:none;stroke-width:1.8;vertical-align:middle}.accent-yellow{color:#ffd15a}.accent-orange{color:#ffab70}.accent-blue{color:#74bdff}.accent-teal{color:#65d8ce}.accent-purple{color:#bda6ff}.accent-green{color:#5ce3ae}.accent-muted{color:#a5bbcf}.display .board-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2vw;align-items:start;padding-top:.4vh}.board-header .datetime{display:flex;flex-wrap:nowrap;gap:1.5vw;align-items:center;text-align:left;font-size:3.8vw;line-height:1.1;font-weight:650;letter-spacing:-.045em;white-space:nowrap}.board-header .datetime>span{font-size:inherit;font-weight:inherit;line-height:inherit;margin:0}.board-header .datetime .header-clock{display:inline-flex;align-items:center;gap:.5vw}.header-clock .lucide{font-size:.48em}.building-heading{text-align:right;display:grid;gap:1vh;padding-top:.4vh}.building-heading .brand{display:flex;align-items:center;justify-content:flex-end;gap:.55vw;font-size:2vw;white-space:nowrap}.building-heading .brand .lucide{font-size:.8em}.building-heading .sun{display:flex;justify-content:flex-end;gap:1.3vw;font-size:1.3vw}.building-heading .sun>span{display:flex;align-items:center;gap:.4vw}.eyebrow,.notice-meta>span:first-child,.traffic-heading{display:flex;align-items:center;gap:.5vw}.eyebrow .lucide{font-size:1.25em}.notice-meta .lucide{font-size:1.1em}.display .left{gap:1.4vh}.display .block{padding-bottom:1.6vh}.contact-block .contact-name{font-size:1.12vw;line-height:1.35;margin:1vh 0 .7vh}.contact-details{display:grid;gap:.55vh;font-size:1vw;line-height:1.35}.contact-line{display:flex;gap:.55vw;align-items:flex-start}.contact-line .lucide{font-size:.85em;margin-top:.2em}.contact-line span{overflow-wrap:anywhere}.forecast .forecast-day{grid-template-columns:2.4em 1fr;gap:.15vh .3vw}.forecast-temperature{display:flex;align-items:center;gap:.55vw}.forecast-temperature .lucide{width:1.3em;height:1.3em}.forecast-day small{display:flex;align-items:center;justify-content:space-between;gap:.5vw;font-size:.88vw;line-height:1.4}.rain-chance{display:flex;align-items:center;gap:.2vw;white-space:nowrap}.rain-chance .lucide{font-size:.85em}.weather-source{font-size:.68vw;color:#849bae;margin-top:.7vh}.display .traffic{grid-template-rows:auto minmax(0,1fr);gap:1vh}.traffic .panel-title{align-items:center;flex-wrap:wrap;font-size:1.15vw}.traffic .traffic-heading{color:#f2f7fb}.traffic .panel-title>span:last-child{font-size:1vw;font-weight:500}.display .transport-footer{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1.7vw;padding-top:1.3vh;align-items:center}.route-badge{display:grid;justify-items:center;gap:.2vh;background:#e44070;color:#fff;border-radius:.55vw;padding:.6vw .8vw;font-size:1.35vw;line-height:1.1}.route-badge>.lucide{width:1.3em;height:1.3em}.route-badge b{font-weight:800}.departure-groups{display:grid;grid-template-columns:1fr 1fr;gap:2.2vw;min-width:0}.departure-group{min-width:0}.departure-direction{font-size:1.27vw;font-weight:700;line-height:1.1;color:#f2f7fb}.departure-stop{display:flex;align-items:center;gap:.25vw;color:#a5bbcf;font-size:.82vw;margin-top:.45vh}.departure-stop>.lucide{width:1em;height:1em}.departure-times{display:flex;gap:1.25vw;margin-top:.65vh;align-items:center}.departure-chip{display:flex;align-items:center;gap:.3vw;white-space:nowrap}.departure-chip>b{font-size:1.7vw;line-height:1;font-weight:700}.departure-chip>span{font-size:.85vw;line-height:1.05;color:#c4d4df}.departure-chip small{display:block;font-size:.6vw;color:#f4c884;margin-top:.15vh}.departure-chip>.lucide{width:.8vw;height:.8vw;color:#5ce3ae}.departure-chip.planned>.lucide{color:#f4c884}.transport-source{display:grid;gap:.5vh;align-self:center;color:#a5bbcf;font-size:.85vw}.transport-source>span,.transport-source>small{display:flex;align-items:center;gap:.4vw}.transport-source>small{font-size:.72vw}.departures-empty{grid-column:1/-1;color:#c6d4df;font-size:1.15vw}@media(max-width:900px){.display .board-header{grid-template-columns:1fr}.building-heading{display:none}.board-header .datetime{font-size:5.3vw;gap:2vw}.contact-block .contact-name,.contact-details{font-size:1.8vw}.display .transport-footer{grid-template-columns:auto minmax(0,1fr)}.transport-source{grid-column:2}.departure-direction{font-size:2vw}.departure-stop,.transport-source{font-size:1.5vw}.departure-chip>b{font-size:2.5vw}.departure-chip>span{font-size:1.5vw}}
