:root{--surface-0:#07070e;--surface-1:#0d0d18;--surface-2:#141428;--surface-3:#1a1a35;--surface-4:#224;--accent:#b44aff;--accent-dim:#7b32b3;--accent-glow:#b44aff66;--color-success:#00ff9d;--color-success-dim:#00b36e;--color-warning:#ff8c2a;--color-danger:#f35;--color-info:#00e5ff;--color-special:#ff2daa;--color-special-dim:#c41e85;--color-neutral:#2d7aff;--color-muted:#44d4e8;--text-primary:#f0f0f8;--text-secondary:#a0a0c0;--text-muted:#7070a0;--text-xs:.8rem;--text-sm:.9rem;--text-base:1.05rem;--text-lg:1.2rem;--text-xl:1.4rem;--text-2xl:1.7rem;--border:#2a2a45;--border-accent:#b44aff4d;--role-dc:#00ff9d;--role-oo:#00e5ff;--role-eo:#ff2daa;--role-op:#ff8c2a;--font-display:"Orbitron", system-ui, sans-serif;--font-body:"Rajdhani", system-ui, sans-serif;--font-mono:"Chakra Petch", monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--radius-sm:3px;--radius-md:6px;--radius-lg:10px;--shadow-sm:0 0 6px #b44aff1f;--shadow-md:0 0 12px #b44aff33;--shadow-lg:0 12px 40px #000c;--transition-fast:.15s ease;--transition-normal:.25s ease;--z-header:100;--z-dropdown:200;--z-modal:300;--z-toast:400;--z-boot:9999;--app-max-width:480px;--header-height:auto;--tab-bar-height:62px;--slot-free-bg:var(--surface-2);--slot-free-border:#2a2a4599;--slot-paid-bg:#00ff9d26;--slot-paid-border:var(--color-success);--slot-paid-text:var(--color-success);--slot-unpaid-bg:#ff8c2a26;--slot-unpaid-border:var(--color-warning);--slot-unpaid-text:var(--color-warning);--slot-lead-bg:#ff2daa1f;--slot-lead-border:var(--color-special);--slot-lead-text:var(--color-special);--slot-block-bg:#2d7aff1f;--slot-block-border:var(--color-neutral);--slot-block-text:var(--color-neutral)}html[data-theme=cyberpunk] .app:before{content:"";pointer-events:none;z-index:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");background-size:256px;position:fixed;inset:0}html[data-theme=cyberpunk] .app:after{content:"";pointer-events:none;z-index:0;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#00000008 2px 4px);position:fixed;inset:0}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-body);font-weight:500;font-size:var(--text-base);color:var(--text-primary);background:var(--surface-0);-webkit-font-smoothing:antialiased;min-height:100dvh;line-height:1.45;overflow-x:hidden}#root{justify-content:center;min-height:100dvh;display:flex}a{color:var(--accent);text-decoration:none}button{font-family:var(--font-body);cursor:pointer;color:inherit;font-size:inherit;background:0 0;border:none}input,select,textarea{font-family:var(--font-body);color:var(--text-primary);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);font-size:var(--text-base);transition:border-color var(--transition-fast);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent)}ul,ol{list-style:none}img{max-width:100%;display:block}.font-display{font-family:var(--font-display)}.font-mono{font-family:var(--font-mono)}h1,h2,h3{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;font-weight:700}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}small,.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs);font-family:var(--font-mono);letter-spacing:.05em}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--surface-4);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--accent-dim)}*{scrollbar-width:thin;scrollbar-color:var(--surface-4) transparent}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes glow{0%,to{box-shadow:0 0 4px var(--accent-glow)}50%{box-shadow:0 0 16px var(--accent-glow)}}.boot{z-index:var(--z-boot);background:var(--surface-0);justify-content:center;align-items:center;animation:.3s bootFadeIn;display:flex;position:fixed;inset:0}.boot__content{align-items:center;gap:var(--space-6);flex-direction:column;display:flex}.boot__ring{width:120px;height:120px;position:relative}.boot__ring-inner{background:radial-gradient(circle, var(--surface-2) 0%, var(--surface-0) 100%);box-shadow:0 0 30px var(--accent-glow), inset 0 0 20px var(--surface-0);border-radius:50%;position:absolute;inset:12px}.boot__ring-svg{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.boot__ring-track{stroke:var(--surface-3)}.boot__ring-progress{stroke:var(--accent);stroke-linecap:round;filter:drop-shadow(0 0 6px var(--accent-glow));transition:stroke-dashoffset .8s cubic-bezier(.4,0,.2,1);animation:2s ease-in-out infinite ringPulse}.boot__logo{font-family:var(--font-display);color:var(--accent);letter-spacing:.15em;text-shadow:0 0 12px var(--accent-glow);justify-content:center;align-items:center;font-size:1.6rem;font-weight:900;display:flex;position:absolute;inset:0}.boot__stage{font-family:var(--font-mono);color:var(--text-secondary);letter-spacing:.2em;text-transform:uppercase;font-size:.75rem}.boot__error{font-family:var(--font-body);color:var(--color-danger);text-align:center;max-width:280px;font-size:.85rem;line-height:1.5}.boot__dots{gap:var(--space-2);display:flex}.boot__dots span{background:var(--accent-dim);border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite dotPulse}.boot__dots span:nth-child(2){animation-delay:.2s}.boot__dots span:nth-child(3){animation-delay:.4s}@keyframes bootFadeIn{0%{opacity:0}to{opacity:1}}@keyframes ringPulse{0%,to{filter:drop-shadow(0 0 4px var(--accent-glow))}50%{filter:drop-shadow(0 0 14px var(--accent-glow))}}@keyframes dotPulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1.1)}}.ucal{position:relative}.ucal__trigger{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-family:var(--font-mono);font-size:var(--text-base);color:var(--text-primary);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);transition:all var(--transition-fast);white-space:nowrap;cursor:pointer;clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));min-height:44px;font-weight:600;display:flex}.ucal__trigger:hover,.ucal__trigger:focus-visible{border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow)}.ucal__trigger-icon{color:var(--accent);font-size:var(--text-xs)}.ucal__trigger-text{flex:1}.ucal__trigger-chevron{font-size:var(--text-xs);color:var(--accent)}.ucal__panel{z-index:var(--z-dropdown);width:340px;padding:var(--space-4);background:var(--surface-0);border:1px solid var(--accent-dim);clip-path:polygon(0 12px,12px 0,calc(100% - 12px) 0,100% 12px,100% calc(100% - 12px),calc(100% - 12px) 100%,12px 100%,0 calc(100% - 12px));box-shadow:0 0 30px var(--accent-glow), 0 20px 60px #000000e6;gap:var(--space-3);flex-direction:column;animation:.25s cubic-bezier(.2,0,0,1) calHudOpen;display:flex;position:absolute;top:calc(100% + 8px);right:0}@keyframes calHudOpen{0%{opacity:0;clip-path:polygon(50% 50%,50% 50%,50% 50%,50% 50%,50% 50%,50% 50%,50% 50%,50% 50%);transform:translateY(-8px)scale(.95)}to{opacity:1;clip-path:polygon(0 12px,12px 0,calc(100% - 12px) 0,100% 12px,100% calc(100% - 12px),calc(100% - 12px) 100%,12px 100%,0 calc(100% - 12px));transform:translateY(0)scale(1)}}.ucal__corner{pointer-events:none;width:16px;height:16px;position:absolute}.ucal__corner--tl{border-top:2px solid var(--accent);border-left:2px solid var(--accent);top:2px;left:2px}.ucal__corner--tr{border-top:2px solid var(--accent);border-right:2px solid var(--accent);top:2px;right:2px}.ucal__corner--bl{border-bottom:2px solid var(--accent);border-left:2px solid var(--accent);bottom:2px;left:2px}.ucal__corner--br{border-bottom:2px solid var(--accent);border-right:2px solid var(--accent);bottom:2px;right:2px}.ucal__quick{gap:var(--space-1);padding-bottom:var(--space-3);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.ucal__quick-btn{font-family:var(--font-mono);font-size:var(--text-sm);padding:var(--space-1) var(--space-3);background:var(--surface-2);min-height:36px;color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;clip-path:polygon(0 0,calc(100% - 5px) 0,100% 5px,100% 100%,5px 100%,0 calc(100% - 5px));transition:all var(--transition-fast);border-radius:0;font-weight:600}.ucal__quick-btn:hover{color:var(--accent);border-color:var(--accent);box-shadow:0 0 8px var(--accent-glow);text-shadow:0 0 6px var(--accent-glow)}.ucal__nav{justify-content:space-between;align-items:center;display:flex}.ucal__nav-arrow{width:38px;height:38px;font-family:var(--font-display);font-size:var(--text-lg);color:var(--accent-dim);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;border-radius:0;justify-content:center;align-items:center;font-weight:700;display:flex}.ucal__nav-arrow:hover{color:var(--accent);border-color:var(--accent-dim);text-shadow:0 0 8px var(--accent-glow)}.ucal__nav-label{font-family:var(--font-display);font-size:var(--text-base);color:var(--accent);letter-spacing:.1em;text-transform:uppercase;text-shadow:0 0 10px var(--accent-glow);font-weight:700}.ucal__grid{grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.ucal__grid--header{margin-bottom:var(--space-1)}.ucal__grid-wrap{position:relative}.ucal__scanlines{pointer-events:none;mix-blend-mode:screen;background:repeating-linear-gradient(0deg,#0000,#0000 3px,#b44aff05 3px 4px);position:absolute;inset:0}.ucal__dow{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-muted);text-align:center;padding:var(--space-1) 0;letter-spacing:.05em;font-weight:600}.ucal__dow--weekend{color:var(--accent-dim)}.ucal__cell{cursor:pointer;background:var(--surface-1);height:42px;transition:all var(--transition-fast);border:1px solid #2a2a454d;justify-content:center;align-items:center;display:flex;position:relative}.ucal__cell-num{z-index:1;font-family:var(--font-mono);font-size:var(--text-base);color:var(--text-primary);font-weight:600;position:relative}.ucal__cell:hover{background:var(--surface-3);border-color:var(--accent-dim);box-shadow:inset 0 0 12px #b44aff26}.ucal__cell:hover .ucal__cell-num{color:var(--accent);text-shadow:0 0 6px var(--accent-glow)}.ucal__cell--dim{background:var(--surface-0);border-color:#2a2a4526}.ucal__cell--dim .ucal__cell-num{color:var(--text-muted);opacity:.4}.ucal__cell--dim:hover .ucal__cell-num{opacity:.7}.ucal__cell--weekend{background:#b44aff08}.ucal__cell--weekend .ucal__cell-num{color:var(--accent-dim)}.ucal__cell--today{border-color:var(--accent);background:#b44aff14}.ucal__cell--today .ucal__cell-num{color:var(--accent);text-shadow:0 0 8px var(--accent-glow);font-weight:700}.ucal__cell-reticle{border:1.5px solid var(--accent);pointer-events:none;animation:2s ease-in-out infinite reticlePulse;position:absolute;inset:2px}.ucal__cell-reticle:before,.ucal__cell-reticle:after{content:"";background:var(--accent);position:absolute}.ucal__cell-reticle:before{width:5px;height:1px;box-shadow:calc(42px - 7px) 0 0 0 var(--accent);top:50%;left:-1px;transform:translateY(-50%)}.ucal__cell-reticle:after{width:1px;height:5px;box-shadow:0 calc(42px - 7px) 0 0 var(--accent);top:-1px;left:50%;transform:translate(-50%)}@keyframes reticlePulse{0%,to{opacity:.6;box-shadow:0 0 4px var(--accent-glow)}50%{opacity:1;box-shadow:0 0 14px var(--accent-glow), inset 0 0 8px var(--accent-glow)}}.ucal__cell--selected{box-shadow:0 0 16px var(--accent-glow);background:var(--accent)!important;border-color:var(--accent)!important}.ucal__cell--selected .ucal__cell-num{text-shadow:none;font-weight:700;color:var(--surface-0)!important}.ucal__cell--selected .ucal__cell-reticle{border-color:var(--surface-0);opacity:.5;animation:none}.ucal__cell--selected .ucal__cell-reticle:before,.ucal__cell--selected .ucal__cell-reticle:after{background:var(--surface-0);box-shadow:none}.ucal__cell--range{border-color:#b44aff33;background:#b44aff1f!important}.ucal__cell--range .ucal__cell-num{color:var(--accent)}.ucal__hint{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--accent-dim);text-align:center;padding:var(--space-2) 0;letter-spacing:.08em;animation:1.5s ease-in-out infinite hintBlink}@keyframes hintBlink{0%,to{opacity:1}50%{opacity:.5}}.header{z-index:var(--z-header);background:var(--surface-1);border-bottom:1px solid var(--border);padding:var(--space-2) var(--space-3);justify-content:space-between;align-items:center;gap:var(--space-2);display:flex;position:sticky;top:0}.header__left{flex-direction:column;flex-shrink:0;gap:2px;display:flex}.header__logo{font-family:var(--font-display);font-size:var(--text-sm);letter-spacing:.1em;text-transform:uppercase;background:linear-gradient(135deg, var(--accent) 0%, var(--color-info) 50%, var(--color-special) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-weight:900;line-height:1.1}.header__role-wrap{position:relative}.header__role-btn{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;padding:2px var(--space-2);min-height:24px;transition:all var(--transition-fast);clip-path:polygon(0 0,calc(100% - 4px) 0,100% 4px,100% 100%,4px 100%,0 calc(100% - 4px));background:0 0;border:1px solid;border-radius:0;align-items:center;font-size:.55rem;font-weight:700;display:flex}.header__role-btn:hover{background:var(--surface-3)}.header__role-label{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;font-size:.55rem;font-weight:700}.header__role-dropdown{z-index:var(--z-dropdown);background:var(--surface-1);border:1px solid var(--border);min-width:200px;box-shadow:var(--shadow-lg);clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));animation:.15s slideUp;position:absolute;top:calc(100% + 4px);left:0;overflow:hidden}.header__role-option{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);text-align:left;transition:background var(--transition-fast);min-height:48px;display:flex}.header__role-option:hover{background:var(--surface-3)}.header__role-option--active{background:var(--surface-2)}.header__role-id{font-family:var(--font-display);font-size:var(--text-xs);letter-spacing:.08em;min-width:32px;font-weight:700}.header__role-name{font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-secondary)}.header__center{flex:1;justify-content:center;min-width:0;display:flex}.header__nick{font-family:var(--font-body);font-size:var(--text-base);color:var(--text-primary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:all var(--transition-fast);text-overflow:ellipsis;white-space:nowrap;align-items:center;max-width:160px;min-height:44px;font-weight:600;display:flex;overflow:hidden}.header__nick:hover{color:var(--accent);background:var(--surface-3)}.header__nick-input{font-family:var(--font-body);font-size:var(--text-base);width:120px;padding:var(--space-1) var(--space-2);background:var(--surface-2);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--text-primary);text-align:center;outline:none;min-height:44px;font-weight:600}.header__right{flex-shrink:0}.tabbar{z-index:var(--z-header);background:var(--surface-1);border-top:1px solid var(--border);height:62px;padding:0 var(--space-1);align-items:stretch;display:flex;position:sticky;bottom:0}.tabbar--scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;overflow:auto hidden}.tabbar--scroll::-webkit-scrollbar{display:none}.tabbar__item{min-width:52px;padding:var(--space-1) var(--space-2);color:var(--text-muted);transition:color var(--transition-fast);-webkit-tap-highlight-color:transparent;flex-direction:column;flex:1 0 auto;justify-content:center;align-items:center;gap:2px;display:flex;position:relative}.tabbar--scroll .tabbar__item{flex:none;min-width:56px}.tabbar__item:hover{color:var(--text-secondary)}.tabbar__icon{font-size:1.5rem;line-height:1}.tabbar__label{font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:.03em;white-space:nowrap;font-weight:600}.tabbar__indicator{opacity:.9;border-radius:0 0 2px 2px;height:2.5px;position:absolute;top:0;left:20%;right:20%}.tabbar__badge{background:var(--color-special);border-radius:50%;width:7px;height:7px;animation:2s ease-in-out infinite pulse;position:absolute;top:8px;right:calc(50% - 16px)}.placeholder{justify-content:center;align-items:center;gap:var(--space-4);min-height:40dvh;padding:var(--space-8);flex-direction:column;animation:.3s fadeIn;display:flex}.placeholder__icon{color:var(--accent-dim);opacity:.5;font-size:3rem}.placeholder__title{font-family:var(--font-display);font-size:var(--text-lg);color:var(--text-secondary);letter-spacing:.08em}.placeholder__text{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase}.placeholder__id{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--surface-4);letter-spacing:.2em;margin-top:var(--space-4)}.app{width:100%;max-width:var(--app-max-width);background:var(--surface-0);isolation:isolate;flex-direction:column;min-height:100dvh;display:flex;position:relative}.app__content{padding:var(--space-3);flex:1;overflow:hidden auto}
