:root{--bg: #090e13;--panel: #121b22;--panel2: #0e151b;--raise: #18232b;--line: rgba(255, 255, 255, .07);--line2: rgba(255, 255, 255, .045);--ink: #e7eef3;--mut: #93a1ad;--faint: #5c6873;--track: rgba(255, 255, 255, .07);--cell-empty: rgba(255, 255, 255, .045);--map-land: #1b2730;--map-stroke: rgba(255, 255, 255, .09);--card-shadow: 0 1px 2px rgba(0, 0, 0, .25);color-scheme:dark;--accent: #2dd4bf;--accent-ink: #04221f;--green: #34d399;--amber: #fbbf24;--red: #f87171;--font-display: "Space Grotesk", sans-serif;--font-body: "Manrope", sans-serif;--cell-gap: 3px;--month-gap: 22px 26px;--cell-radius: 4px}:root.theme-day{--bg: #e7ecf1;--panel: #ffffff;--panel2: #eef2f6;--raise: #e3e9ef;--line: rgba(15, 30, 45, .13);--line2: rgba(15, 30, 45, .075);--ink: #0f1b24;--mut: #54636f;--faint: #8593a0;--track: rgba(15, 30, 45, .1);--cell-empty: rgba(15, 30, 45, .07);--map-land: #d7dee5;--map-stroke: rgba(15, 30, 45, .16);--card-shadow: 0 1px 2px rgba(20, 40, 60, .06), 0 6px 20px rgba(20, 40, 60, .09);color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;transition:background .25s ease,color .25s ease}body{min-height:100vh}button{font-family:inherit}h2,h3{font-family:var(--font-display);font-weight:600;margin:0;letter-spacing:-.3px;color:var(--ink)}.app{max-width:1340px;margin:0 auto;padding:22px 26px 26px;color:var(--ink);min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.app-foot{margin-top:16px;padding:13px 8px 2px;border-top:1px solid var(--line2);display:flex;flex-wrap:wrap;gap:4px 8px;justify-content:center;align-items:baseline;text-align:center;font-size:11px;line-height:1.5;color:var(--faint)}.app-foot>span:last-child{max-width:760px}.app-foot-dot{opacity:.6}.conflict-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:12px;padding:12px 16px;border-radius:12px;background:#fbbf241f;border:1px solid rgba(251,191,36,.35);color:var(--ink);font-size:13.5px;line-height:1.45}.topbar{display:flex;align-items:center;gap:12px;padding:6px 2px 22px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:11px}.brand-mark{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:linear-gradient(150deg,var(--accent),#0e9c8c)}.brand-mark span{width:11px;height:11px;border-radius:50%;border:2.5px solid var(--accent-ink)}.brand-name{font-family:var(--font-display);font-size:19px;font-weight:600;letter-spacing:-.2px}.spacer{flex:1}.loc-pill{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:99px;background:var(--panel2);border:1px solid var(--line);font-size:13.5px;color:var(--mut);white-space:nowrap}.loc-pill b{color:var(--ink);font-weight:700}.year-btn,.icon-btn-lg{width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:var(--panel);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s,border-color .12s}.year-btn:hover,.icon-btn-lg:hover{background:var(--raise);border-color:#ffffff1f}.year-nav{display:flex;align-items:center;gap:8px}.year-label{font-family:var(--font-display);font-size:16px;font-weight:600;min-width:46px;text-align:center;font-variant-numeric:tabular-nums}.btn-primary{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:11px;border:none;cursor:pointer;background:var(--accent);color:var(--accent-ink);font-size:14px;font-weight:700;transition:filter .12s,transform .06s;white-space:nowrap}.btn-primary:hover{filter:brightness(1.07)}.btn-primary:active{transform:translateY(1px)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-ghost{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:11px;border:1px solid var(--line);background:transparent;color:var(--mut);font-size:14px;font-weight:600;cursor:pointer;transition:background .12s}.btn-ghost:hover{background:var(--raise)}.modal-confirm{max-width:360px}.modal-confirm .modal-head{display:none}.modal-confirm .modal-body{padding:20px 20px 8px}.confirm-clear-body{display:flex;flex-direction:column;align-items:center;text-align:center;padding:8px 4px 4px;gap:10px}.confirm-clear-icon{width:48px;height:48px;border-radius:14px;background:#fbbf241f;display:flex;align-items:center;justify-content:center;flex-shrink:0}.confirm-clear-title{font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--ink);margin:0}.confirm-clear-msg{font-size:13.5px;color:var(--mut);line-height:1.55;margin:0;max-width:300px}.confirm-clear-msg b{color:var(--ink);font-weight:700}.btn-danger-solid{background:#f8717126;border:1px solid rgba(248,113,113,.3)}.btn-danger-solid:hover{background:#f8717140;border-color:#f8717180}.btn-danger{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:11px;border:1px solid transparent;background:transparent;color:var(--red);font-size:14px;font-weight:700;cursor:pointer;transition:background .12s}.btn-danger:hover{background:#f871711f}.layout{display:grid;grid-template-columns:322px 1fr;gap:22px;align-items:stretch;flex:1;min-height:0}.card{background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:var(--card-shadow);transition:background .25s ease,border-color .25s ease}.side{display:flex;flex-direction:column;gap:18px;min-height:0}.summary{padding:20px 22px}.sum-head{display:flex;align-items:center;gap:11px;margin-bottom:14px}.sum-country{font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--ink)}.sum-sub{font-size:11.5px;color:var(--faint);margin-top:1px}.country-select-wrap{position:relative}.country-select{display:inline-flex;align-items:center;gap:6px;background:none;border:none;padding:0;margin:0;cursor:pointer;color:inherit}.country-select:hover .sum-country{text-decoration:underline;text-underline-offset:3px}.cs-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20}.country-menu{position:absolute;top:calc(100% + 8px);left:0;z-index:21;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 48px #00000059;padding:6px;min-width:248px;max-height:320px;display:flex;flex-direction:column}.cs-search-wrap{margin:2px 2px 6px}.cs-list{overflow-y:auto}.cs-empty{padding:12px 11px;font-size:13px;color:var(--faint);text-align:center}.cs-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;border:none;background:transparent;border-radius:8px;cursor:pointer;color:var(--ink);font-family:var(--font-body);font-size:13.5px;font-weight:500;text-align:left}.cs-item>span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cs-item:hover,.cs-item.is-sel{background:var(--raise)}.sum-big{display:flex;align-items:baseline;gap:8px}.sum-num{font-family:var(--font-display);font-size:46px;font-weight:600;letter-spacing:-1.5px;line-height:1;font-variant-numeric:tabular-nums}.sum-of{font-size:16px;color:var(--mut);font-weight:600}.sum-bar{margin:14px 0 12px}.sum-stats{margin-top:14px;padding-top:14px;border-top:1px solid var(--line2);display:flex;flex-direction:column;gap:10px}.sum-stat{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.sum-stat span{font-size:13px;color:var(--mut);white-space:nowrap}.sum-stat b{font-family:var(--font-display);font-size:15px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}.sum-visa,.sum-visa-add{display:flex;align-items:center;gap:11px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line2)}.sum-visa-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.sum-visa-type{font-family:var(--font-display);font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sum-visa-exp{font-size:11.5px;color:var(--faint)}.sum-visa-count{font-family:var(--font-display);font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}.sum-visa svg,.sum-visa-add svg{flex-shrink:0}.sum-visa-add{width:100%;border-left:none;border-right:none;border-bottom:none;background:none;cursor:pointer;color:var(--mut);font-family:var(--font-body);font-size:13px;font-weight:500;text-align:left}.sum-visa-add:hover{color:var(--accent)}.pill{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:99px;font-size:12.5px;font-weight:700;white-space:nowrap}.pill-green{background:#34d39921;color:var(--green);--pill-fg: var(--green)}.pill-amber{background:#fbbf2421;color:var(--amber);--pill-fg: var(--amber)}.pill-red{background:#f8717121;color:var(--red);--pill-fg: var(--red)}.legend{padding:16px 20px}.legend-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.micro-label{font-size:11px;font-weight:700;letter-spacing:1.3px;text-transform:uppercase;color:var(--faint)}.link-btn{background:none;border:none;color:var(--accent);font-size:12.5px;font-weight:700;cursor:pointer;padding:2px}.link-btn:hover{text-decoration:underline}.legend-rows{display:flex;flex-direction:column;gap:11px}.legend-row{display:flex;align-items:center;gap:11px}.legend-dot{width:12px;height:12px;border-radius:4px;flex-shrink:0}.legend-name{font-size:13.5px;color:var(--ink);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legend-val{font-family:var(--font-display);font-size:13.5px;font-weight:500;color:var(--mut);font-variant-numeric:tabular-nums;white-space:nowrap}.legend-val b{font-weight:700}.legend-val-mut{color:var(--faint)}.calendar{padding:24px 26px;flex:1;min-height:0;display:flex;flex-direction:column}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:14px;flex-wrap:wrap}.cal-head h2{font-size:17px}.cal-legend{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--faint)}.cal-key{width:11px!important;height:11px!important;aspect-ratio:auto!important;display:inline-block;cursor:default!important}.autotrack{display:inline-flex;align-items:center;gap:5px;margin-left:8px;padding:3px 9px;border-radius:99px;background:#2dd4bf1a;color:var(--accent);font-weight:700}.cal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--month-gap);flex:1;min-height:0;align-content:start}@media (min-width: 861px){.layout>.side>:last-child{flex-grow:1}.layout:not(.layout-3) .cal-grid{grid-template-columns:repeat(3,1fr)}}.swatches{display:flex;flex-wrap:wrap;gap:10px;margin:2px 0 18px}.swatch{width:34px;height:34px;border-radius:10px;border:none;cursor:pointer;box-shadow:inset 0 0 0 1px #00000026;transition:transform .08s}.swatch:hover{transform:scale(1.08)}.swatch.is-on{box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--ink)}.rulecard-val-text{font-family:var(--font-display);font-size:13px;font-weight:700;letter-spacing:.02em}.month-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;min-height:18px}.month-name{font-family:var(--font-display);font-size:13.5px;font-weight:600;color:var(--ink)}.btn-clear-period{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;background:transparent;border-radius:4px;cursor:pointer;color:var(--faint);flex-shrink:0;transition:color .1s,background .1s;padding:0}.btn-clear-period:hover{color:var(--red);background:#f871711f}.cal-title-row{display:flex;align-items:center;gap:8px}.btn-clear-year{width:22px;height:22px;border-radius:6px}.month-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--cell-gap);margin-bottom:5px}.weekday-label{font-family:var(--font-display);font-size:11px;font-weight:600;text-align:center;color:var(--faint);letter-spacing:.02em;line-height:1}.weekday-weekend{color:var(--accent);opacity:.65}.month-cells{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--cell-gap)}.cell{width:100%;aspect-ratio:1;border-radius:var(--cell-radius);border:none;padding:0;cursor:pointer;background:var(--cell-empty);transition:filter .12s,transform .08s;display:flex;align-items:center;justify-content:center;color:var(--faint)}.cell:hover{filter:brightness(1.25);transform:scale(1.08)}.cell-num{font-family:var(--font-display);font-size:12px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums;pointer-events:none;-webkit-user-select:none;user-select:none}.cell-future .cell-num,.cell-away .cell-num{opacity:.5}.cell-blank .cell-num{display:none}.cell-blank{background:transparent;pointer-events:none}.cell-future{background:var(--cell-empty)}.cell-away{background:transparent;box-shadow:inset 0 0 0 1.5px var(--line)}.cell-today{box-shadow:0 0 0 2px var(--panel),0 0 0 3.5px var(--ink)}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#05080ba8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:20px}.modal{width:100%;max-width:440px;background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 80px #00000080;max-height:90vh;display:flex;flex-direction:column;animation:pop .16s ease}.modal-wide{max-width:560px}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 12px}.modal-head h3{font-size:17px}.modal-body{padding:4px 20px 16px;overflow-y:auto}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--line2)}.icon-btn{width:30px;height:30px;border-radius:8px;border:none;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s}.icon-btn:hover{background:var(--raise)}.field-label{display:block;font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--faint);margin:18px 0 9px}.field-row{display:flex;gap:12px}.field-row>*,.field-row input[type=date]{min-width:0}.input{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);color:var(--ink);font-family:var(--font-body);font-size:14px;color-scheme:inherit}.input:focus{outline:none;border-color:var(--accent)}.input-textarea{resize:vertical;min-height:52px;line-height:1.45}.picker-search-wrap{position:relative;margin-bottom:8px}.picker-search-wrap svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);pointer-events:none}.picker-search{padding-left:32px}.picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.picker-item{min-width:0}.picker-item>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-grid-scroll{max-height:264px;overflow-y:auto;padding-right:2px}.picker-item{display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);color:var(--ink);font-size:13px;font-weight:500;cursor:pointer;text-align:left;transition:border-color .12s,background .12s}.picker-item span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.picker-item:hover{background:var(--raise)}.picker-item.is-sel{border-color:var(--accent);background:#2dd4bf1a}.seg{display:flex;gap:6px;background:var(--panel2);border:1px solid var(--line);border-radius:11px;padding:4px}.seg-btn{flex:1;padding:9px;border-radius:8px;border:none;background:transparent;color:var(--mut);font-size:13px;font-weight:600;cursor:pointer;transition:background .12s,color .12s}.seg-btn.is-on{background:var(--accent);color:var(--accent-ink)}.range{width:100%;accent-color:var(--accent)}.setting-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line2)}.st-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700}.st-sub{font-size:12.5px;color:var(--mut);margin-top:4px;line-height:1.45}.switch{width:46px;height:27px;border-radius:99px;border:none;background:var(--track);cursor:pointer;position:relative;flex-shrink:0;transition:background .15s}.switch span{position:absolute;top:3px;left:3px;width:21px;height:21px;border-radius:50%;background:#fff;transition:left .16s cubic-bezier(.2,.7,.3,1)}.switch.is-on{background:var(--accent)}.switch.is-on span{left:22px}.hint{font-size:12.5px;color:var(--mut);line-height:1.5;margin:12px 0 0}.day-label{font-family:var(--font-display);font-size:16px;font-weight:600;color:var(--ink);margin:4px 0 12px}.day-status{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--mut)}.day-status b{color:var(--ink);font-weight:700}.day-dot{width:16px;height:16px;border-radius:4px;flex-shrink:0}.day-dot-away{background:transparent;box-shadow:inset 0 0 0 1.5px var(--line)}.hint-warn{color:var(--amber)}.trip-list{display:flex;flex-direction:column}.trip-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line2)}.trip-row-clickable{cursor:pointer;margin:0 -10px;padding:13px 10px;border-radius:10px;border-bottom:1px solid var(--line2);transition:background .12s}.trip-row-clickable:hover{background:var(--panel2)}.trip-row:last-child{border-bottom:none}.trip-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}.trip-meta{flex:1;min-width:0}.trip-name{font-size:14px;font-weight:600}.trip-dates{font-size:12.5px;color:var(--faint);margin-top:2px}.trip-note{font-size:12.5px;color:var(--mut);margin-top:4px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.main-col{display:flex;flex-direction:column;gap:14px;min-width:0}.view-tabs{display:inline-flex;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:4px;align-self:flex-start}.view-tab{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border-radius:9px;border:none;background:transparent;color:var(--mut);font-size:13.5px;font-weight:600;cursor:pointer;transition:background .12s,color .12s}.view-tab.is-on{background:var(--raise);color:var(--ink)}.view-tab:hover{color:var(--ink)}.header-tabs{margin-left:10px}.daynight{margin-left:2px}.rules-card{padding:15px 18px;margin-top:auto}.rulecards{display:flex;flex-direction:column;gap:10px}.rulecard{background:var(--panel2);border:1px solid var(--line2);border-radius:12px;padding:11px 13px}.rulecard-top{display:flex;align-items:center;gap:9px;margin-bottom:9px}.rulecard-name{flex:1;min-width:0;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}.rulecard-val{font-family:var(--font-display);font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;flex-shrink:0;color:var(--ink)}.rulecard-val i{font-style:normal;color:var(--faint);font-size:12px}.rulecard-status{font-size:11.5px;font-weight:700;margin-top:8px}.passport-card{padding:15px 18px}.passport-hero{display:flex;align-items:center;justify-content:space-between;gap:10px}.passport-num{font-family:var(--font-display);font-size:28px;font-weight:600;letter-spacing:-.8px;line-height:1;white-space:nowrap;font-variant-numeric:tabular-nums}.passport-cap{display:flex;align-items:center;gap:3px;font-size:12.5px;font-weight:700;letter-spacing:.2px;color:var(--red);margin-top:6px}.passport-bar{margin:11px 0 10px}.passport-dates{display:flex;flex-direction:column;gap:5px;font-size:11.5px;color:var(--mut)}.passport-dates>span{display:flex;justify-content:space-between;gap:10px}.passport-dates b{color:var(--ink);font-weight:600}.passport-empty{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:var(--panel2);border:1px dashed var(--line);border-radius:12px;padding:12px 13px;cursor:pointer;color:var(--mut);font-family:var(--font-body);font-size:12.5px;font-weight:500;line-height:1.4}.passport-empty:hover{border-color:var(--accent);color:var(--ink)}.passport-empty svg{flex-shrink:0}.mapview{padding:24px 26px;flex:1}.map-wrap{position:relative;width:100%;min-height:320px;display:flex;align-items:center;justify-content:center}.map-svg{width:100%;height:auto;display:block}.map-msg{padding:90px 20px;color:var(--faint);font-size:14px;text-align:center}.map-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.map-chip{display:flex;align-items:center;gap:7px;padding:6px 11px;border-radius:99px;background:var(--panel2);border:1px solid var(--line2);font-size:12.5px;color:var(--ink)}.map-chip b{font-family:var(--font-display);color:var(--mut);font-weight:600}.rule-edit-list{display:flex;flex-direction:column;gap:14px;margin-top:14px}.rule-edit{background:var(--panel2);border:1px solid var(--line);border-radius:13px;padding:14px}.rule-edit-top{display:flex;align-items:center;gap:10px}.seg-sm{flex:1}.seg-sm .seg-btn{padding:7px;font-size:12.5px}.star{background:none;border:none;color:var(--mut);font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;padding:5px 8px;border-radius:7px}.star.is-on{color:var(--accent)}.star:hover{background:var(--raise)}.rule-edit-body{display:flex;align-items:center;gap:12px;margin-top:12px}.rule-select{flex:1}.rule-edit-flag{flex:1;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--mut)}.rule-edit-thr{flex:1;display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--mut);white-space:nowrap}.rule-edit-thr .range{flex:1}.rule-edit-status{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.rule-edit-count{font-family:var(--font-display);font-size:14px;font-weight:600;color:var(--mut);font-variant-numeric:tabular-nums}.rule-edit-srt{font-style:normal;color:var(--accent);font-size:12px}.srt-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line2)}.srt-toggle-title{font-size:13px;font-weight:700;color:var(--ink)}.srt-toggle-sub{font-size:12px;color:var(--mut);margin-top:2px}.rule-srt{margin-top:12px;padding:12px;border-radius:11px;background:var(--panel);border:1px solid var(--line2);display:flex;flex-direction:column;gap:11px}.srt-status{max-width:220px}.srt-ties{display:flex;flex-wrap:wrap;gap:8px 14px}.srt-tie{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--ink);cursor:pointer;white-space:nowrap}.srt-tie input{width:15px;height:15px;accent-color:var(--accent);cursor:pointer}.srt-limit{font-size:13px;color:var(--mut);padding-top:2px}.srt-limit b{color:var(--accent);font-family:var(--font-display);font-variant-numeric:tabular-nums}.srt-adjust{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.srt-adjust label{font-size:13px;color:var(--ink);font-weight:600}.srt-adjust-input{width:72px;padding:7px 10px;text-align:center;font-variant-numeric:tabular-nums}.srt-adjust-hint{font-size:12px;color:var(--faint)}.srt-note{display:flex;gap:8px;align-items:flex-start;margin:0;padding:9px 11px;border-radius:9px;background:var(--panel2);font-size:12px;line-height:1.5;color:var(--mut)}.srt-note svg{flex-shrink:0;margin-top:1px}.rulecard-srt{font-size:11px;color:var(--faint);margin-top:5px}.rule-ref{position:relative;display:inline-flex;align-items:center;margin-left:5px;color:var(--faint);cursor:help;vertical-align:middle;flex-shrink:0;transition:color .12s}.rule-ref:hover,.rule-ref:focus-visible{color:var(--accent);outline:none}.rule-tip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(-3px);width:max-content;max-width:248px;padding:9px 11px;border-radius:10px;background:var(--raise);border:1px solid var(--line);box-shadow:0 12px 32px #0006;color:var(--ink);font-family:var(--font-body);font-size:12px;font-weight:500;line-height:1.45;text-align:left;white-space:normal;letter-spacing:normal;opacity:0;pointer-events:none;z-index:40;transition:opacity .12s ease,transform .12s ease}.rule-ref:hover .rule-tip,.rule-ref:focus-visible .rule-tip,.rule-ref.is-open .rule-tip{opacity:1;transform:translate(-50%) translateY(0);pointer-events:auto}.app.layout-command{max-width:1760px}.layout-3{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:stretch;flex:initial;min-height:0}.layout-3 .rail{min-height:0}.layout-command .cal-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-content:start;gap:22px 22px}.layout-command .month{max-width:none;margin-inline:0}.layout-toggle{position:fixed;right:18px;bottom:18px;z-index:60;padding:9px 15px;border-radius:99px;background:var(--panel);border:1px solid var(--line);box-shadow:0 8px 24px #0000004d;color:var(--accent);font-family:var(--font-body);font-size:12.5px;font-weight:700;cursor:pointer;transition:border-color .12s,transform .08s}.layout-toggle:hover{border-color:var(--accent);transform:translateY(-1px)}.cmd-rule{background:var(--panel2);box-shadow:none;padding:11px 14px}.cmd-rule-pick{display:inline-flex;align-items:center;gap:8px;min-width:0}.cmd-rule-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;border:none;color:var(--accent);font-family:inherit;font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;cursor:pointer;padding:0 14px 0 0;max-width:150px;text-overflow:ellipsis}.cmd-rule-tag{flex-shrink:0;font-size:9px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--mut);background:var(--raise);padding:2px 7px;border-radius:5px;white-space:nowrap}.cmd-rule-top{display:flex;align-items:center;gap:8px;margin:9px 0 8px}.cmd-rule-val{margin-left:auto;font-family:var(--font-display);font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.cmd-rule-val i{font-style:normal;color:var(--faint);font-size:12px}.cmd-rule-status{font-size:10.5px;font-weight:700;margin-top:7px}.cmd-passport{display:flex;flex-direction:column;align-items:stretch;gap:5px;width:100%;text-align:left;background:var(--panel2);box-shadow:none;padding:11px 14px;cursor:pointer}.cmd-pp-row{display:flex;align-items:center;gap:9px}.cmd-pp-sub{display:flex;justify-content:space-between;gap:10px;font-size:10.5px;color:var(--faint)}.cmd-pp-renew{margin-left:auto;color:var(--red);font-weight:700;font-size:11px;white-space:nowrap}.legend-more{margin-top:11px;background:none;border:none;padding:0;color:var(--accent);font-size:12px;font-weight:700;cursor:pointer}.legend-more:hover{text-decoration:underline}.cmd-passport:hover{border-color:var(--line)}.cmd-passport svg{flex-shrink:0}.cmd-pp-label{font-size:12.5px;font-weight:600;color:var(--ink)}.cmd-pp-count{margin-left:auto;font-family:var(--font-display);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.cmd-pp-status{font-size:11px;font-weight:700}.cmd-pp-add{margin-left:auto;font-size:12px;font-weight:600;color:var(--accent)}@media (max-width: 860px){.app.layout-command{min-height:0;display:block}.layout-3{grid-template-columns:1fr;flex:initial}.layout-3 .rail{overflow:visible}}@media (max-width: 1180px){.cal-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 860px){.app{min-height:0;display:block}.layout{grid-template-columns:1fr;flex:initial}.side{position:static;flex-direction:row;flex-wrap:wrap}.summary,.legend{flex:1;min-width:260px}.rules-card{margin-top:0;flex:1;min-width:260px}.calendar{flex:initial;display:block}.cal-grid{grid-template-columns:repeat(3,1fr);align-content:start}}@media (max-width: 620px){.app{padding:18px 16px 50px}.topbar{gap:10px}.loc-pill{order:5;width:100%;justify-content:center}.side{flex-direction:column}.cal-grid{grid-template-columns:repeat(2,1fr)}.sum-num{font-size:44px}}@media (max-width: 380px){.cal-grid{grid-template-columns:1fr}}@media (max-width: 620px){html,body{overflow-x:clip}.topbar{gap:10px 8px;padding-bottom:18px}.topbar .brand{order:0;flex:1}.topbar .daynight{order:1}.topbar .csv-btn{order:2}.topbar .settings-btn{order:3}.topbar .header-tabs{order:4;margin-left:0}.header-tabs .view-tab{padding:10px 14px;font-size:14.5px}.header-tabs .view-tab svg{display:none}.topbar .spacer{order:5}.topbar .year-nav{order:6}.topbar .loc-pill{order:7}.year-btn,.icon-btn-lg{width:40px;height:40px}.year-label{font-size:17px}.topbar .add-trip-btn{position:fixed;left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:40;justify-content:center;padding:15px 16px;font-size:16px;border-radius:14px;box-shadow:0 10px 28px #00000073}.app{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.layout-toggle{display:none}.cal-grid{grid-template-columns:1fr;gap:22px}.month-name{font-size:16px}.weekday-label{font-size:12px}.cell-num{font-size:15px}.cell:hover{transform:none}.btn-clear-period{width:30px;height:30px}.mapview{padding:20px 18px}.map-wrap{min-height:0;margin:6px -6px 0}.map-chip{font-size:14px;padding:8px 13px}.input,input,select,textarea{font-size:16px}.rule-tip{left:auto;right:-10px;transform:translateY(-3px);max-width:min(260px,calc(100vw - 48px))}.rule-ref:hover .rule-tip,.rule-ref:focus-visible .rule-tip,.rule-ref.is-open .rule-tip{transform:translateY(0)}}.auth-wrap{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-inner{width:100%;max-width:380px;display:flex;flex-direction:column;gap:20px}.auth-brand{display:flex;align-items:center;gap:11px;justify-content:center}.auth-card{padding:24px 24px 22px}.auth-title{font-family:var(--font-display);font-size:21px;font-weight:600;color:var(--ink);letter-spacing:-.3px}.auth-sub{font-size:13px;color:var(--mut);margin-top:4px;line-height:1.5}.auth-form{display:flex;flex-direction:column}.auth-submit{width:100%;justify-content:center;margin-top:22px;padding:11px 16px;font-size:14.5px}.auth-switch{font-size:13px;color:var(--mut);text-align:center}.auth-switch button{background:none;border:none;color:var(--accent);font-weight:700;cursor:pointer;font-size:13px;padding:2px 4px}.auth-switch button:hover{text-decoration:underline}.auth-error{margin-top:14px}.auth-logout{margin-top:18px;padding-top:16px;border-top:1px solid var(--line2);display:flex;align-items:center;justify-content:space-between;gap:12px}.auth-logout-email{font-size:12.5px;color:var(--mut);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.splash{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--mut);font-size:13.5px}.splash .brand-mark{width:46px;height:46px;border-radius:13px;animation:pulse 1.25s ease-in-out infinite}.splash .brand-mark span{width:17px;height:17px;border-width:3.5px}@keyframes pulse{0%,to{opacity:.5;transform:scale(.96)}50%{opacity:1;transform:scale(1)}}.ptr{position:fixed;top:calc(env(safe-area-inset-top) + 10px);left:50%;z-index:80;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--panel);border:1px solid var(--line);box-shadow:0 8px 22px #00000059;color:var(--mut);pointer-events:none;transition:transform .25s ease,opacity .25s ease,color .15s}.ptr.is-dragging{transition:color .15s}.ptr.is-ready,.ptr.is-busy{color:var(--accent)}.ptr.is-busy svg{animation:ptr-spin .8s linear infinite}@keyframes ptr-spin{to{transform:rotate(360deg)}}
