:root{--warm-white: #FDFAF5;--sand: #F5F0E8;--sand-deep: #EDE5D4;--ink: #1C1A16;--muted: #7A7468;--accent: #8B6F47;--accent-light: #C4A882;--card: #FFFDF9;--sidebar: #F7F1E7;--border: rgba(28, 26, 22, .1);--border-soft: rgba(28, 26, 22, .08);--ink-55: rgba(28, 26, 22, .55);--ink-50: rgba(28, 26, 22, .5);--ink-45: rgba(28, 26, 22, .45);--font-heading: "Cormorant Garamond", serif;--font-body: "Jost", sans-serif}*{box-sizing:border-box;margin:0;padding:0}::selection{background:var(--accent-light);color:var(--ink)}html,body,#root{height:100%}body{font-family:var(--font-body);font-weight:400;color:var(--ink);background:var(--warm-white);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-heading);line-height:1.1}button{font-family:var(--font-body);cursor:pointer}input,select,textarea{font-family:var(--font-body);font-size:.95rem}a{color:inherit;text-decoration:none}.scroll::-webkit-scrollbar{width:7px;height:7px}.scroll::-webkit-scrollbar-thumb{background:#1c1a1624;border-radius:4px}.scroll::-webkit-scrollbar-track{background:transparent}.hs::-webkit-scrollbar{height:0}.eyebrow{font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--accent);font-weight:500}.app-shell{display:flex;height:100%;background:var(--warm-white)}.sidebar{width:238px;flex:0 0 238px;background:var(--sidebar);border-right:1px solid var(--border-soft);display:flex;flex-direction:column;padding:26px 16px 20px}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:0 8px 24px;margin-bottom:8px;border-bottom:1px solid var(--border-soft)}.brand-mark{width:30px;height:30px;flex:0 0 30px;border-radius:50%;border:1px solid var(--accent);display:flex;align-items:center;justify-content:center;color:var(--accent);font-family:var(--font-heading);font-size:19px;font-weight:500}.brand-name{font-family:var(--font-heading);font-size:19px;line-height:1;font-weight:500}.brand-sub{font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:#1c1a1666;margin-top:3px}.sidebar nav{display:flex;flex-direction:column;flex:1}.nav-link{display:flex;align-items:center;gap:12px;width:100%;padding:11px 12px;border-radius:9px;font-size:14px;letter-spacing:.01em;margin-bottom:2px;position:relative;color:var(--ink-55);transition:background .15s,color .15s}.nav-link .nav-bar{position:absolute;left:0;top:9px;bottom:9px;width:2.5px;border-radius:3px;background:var(--accent);opacity:0;transition:opacity .15s}.nav-link .nav-icon{width:20px;display:inline-flex;justify-content:center}.nav-link:hover{color:var(--ink)}.nav-link.active{background:#8b6f471a;color:var(--accent)}.nav-link.active .nav-bar{opacity:1}.sidebar-user{display:flex;align-items:center;gap:11px;padding:14px 8px 0;border-top:1px solid var(--border-soft)}.sidebar-user .avatar{width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:var(--accent);color:var(--warm-white);display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-size:16px}.sidebar-user .user-name{font-size:13px}.sidebar-user .user-role{font-size:10.5px;color:#1c1a1675;letter-spacing:.02em}.sidebar-user .logout-btn{margin-left:auto;background:none;border:none;color:var(--ink-45);font-size:11px;letter-spacing:.06em;text-transform:uppercase}.sidebar-user .logout-btn:hover{color:var(--accent)}.main-content{flex:1;overflow-y:auto;padding:32px 38px 44px}.bottom-nav{display:none;flex:0 0 66px;border-top:1px solid var(--border-soft);background:var(--sidebar);padding:9px 6px 12px}.bottom-nav .nav-link-sm{flex:1;border:none;background:none;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--ink-55);padding:4px 0;font-size:9.5px;letter-spacing:.01em}.bottom-nav .nav-link-sm.active{color:var(--accent)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:28px;flex-wrap:wrap}.page-title{font-family:var(--font-heading);font-size:30px;font-weight:400;line-height:1}.page-sub{font-size:12.5px;color:var(--ink-50);letter-spacing:.04em;margin-top:7px}.card{border:1px solid var(--border);border-radius:12px;background:var(--card)}.dash-hero{display:flex;gap:20px;margin-bottom:20px;align-items:stretch}.countdown-card{flex:1.7;padding:28px 30px;position:relative;overflow:hidden}.countdown-title{font-family:var(--font-heading);font-size:38px;font-weight:400;line-height:1.05;margin-top:14px}.countdown-meta{font-size:13px;color:var(--ink-55);letter-spacing:.03em;margin-top:6px}.countdown-digits{display:flex;gap:26px;margin-top:26px}.countdown-digits .num{font-family:var(--font-heading);font-size:60px;font-weight:300;line-height:.85;color:var(--accent);font-variant-numeric:tabular-nums}.countdown-digits .unit-label{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-45);margin-top:8px}.countdown-digits .colon{font-family:var(--font-heading);font-size:52px;font-weight:200;color:#1c1a1633;align-self:flex-start;line-height:1}.countdown-foot{display:flex;gap:22px;margin-top:26px;padding-top:20px;border-top:1px solid var(--border-soft);font-size:13px;color:#1c1a169e;flex-wrap:wrap}.countdown-foot span.item{display:inline-flex;align-items:center;gap:7px}.countdown-foot .ico{color:var(--accent);display:inline-flex}.stat-col{flex:1;display:flex;flex-direction:column;gap:16px}.stat-card{flex:1;padding:17px 20px;display:flex;flex-direction:column;justify-content:center}.stat-card .stat-label{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#1c1a167a}.stat-card .stat-value{font-family:var(--font-heading);font-size:34px;font-weight:400;line-height:1;margin-top:5px}.stat-card .stat-sub{font-size:11.5px;color:var(--ink-50);margin-top:4px;letter-spacing:.01em}.week-card{padding:22px 24px;margin-bottom:20px}.week-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.week-head .section-title{font-family:var(--font-heading);font-size:21px;font-weight:500}.week-head .range{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#1c1a1666}.week-row{display:flex;gap:10px}.day-card{flex:1;background:var(--card);border:1px solid var(--border-soft);border-radius:9px;padding:12px 11px 14px;min-height:118px;display:flex;flex-direction:column}.day-card.today{background:#fbf6ec;border-color:#8b6f4759}.day-card.shoot{background:#f5eee0;border-color:var(--accent-light)}.day-card .day-top{display:flex;align-items:baseline;justify-content:space-between}.day-card .day-abbr{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#1c1a166b}.day-card .day-date{font-family:var(--font-heading);font-size:19px;font-weight:500}.day-card.shoot .day-date{color:var(--accent)}.day-card .day-rule{height:1px;background:#1c1a1612;margin:9px 0 10px}.day-card .day-time{display:flex;align-items:center;gap:6px;margin-bottom:5px;font-size:10px;color:var(--ink-45);letter-spacing:.02em}.day-card .dot{width:6px;height:6px;border-radius:50%;flex:0 0 6px}.day-card .day-label{font-size:11.5px;line-height:1.3;color:#1c1a16c7}.section-title{font-family:var(--font-heading);font-size:21px;font-weight:500}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:14px}.quick-card{text-align:left;border:1px solid var(--border);border-radius:12px;padding:20px;background:var(--card);display:flex;flex-direction:column;gap:14px}.quick-card .tile{width:40px;height:40px;border-radius:10px;background:var(--sand);display:inline-flex;align-items:center;justify-content:center;color:var(--accent)}.quick-card .q-label{font-family:var(--font-heading);font-size:19px;font-weight:500;line-height:1}.quick-card .q-meta{font-size:11.5px;color:var(--ink-50);margin-top:6px;letter-spacing:.01em}.chip-row{display:flex;gap:8px;overflow-x:auto;margin-bottom:14px;padding-bottom:2px}.chip{border:1px solid rgba(28,26,22,.16);background:transparent;color:#1c1a1699;font-size:12.5px;letter-spacing:.02em;padding:8px 16px;border-radius:100px;white-space:nowrap}.chip.on{background:var(--ink);color:var(--warm-white);border-color:var(--ink)}.legend{display:flex;gap:18px;margin-bottom:20px;font-size:11.5px;color:var(--ink-50);letter-spacing:.02em;flex-wrap:wrap}.legend span{display:inline-flex;align-items:center;gap:7px}.legend .dot{width:7px;height:7px;border-radius:50%}.equip-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.equip-card{padding:18px;display:flex;flex-direction:column;gap:14px}.equip-card .card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.equip-card .tile{width:44px;height:44px;border-radius:10px;background:var(--sand);display:inline-flex;align-items:center;justify-content:center;color:var(--accent)}.badge{display:inline-flex;align-items:center;gap:7px;padding:5px 11px 5px 9px;border-radius:100px;font-size:11px;font-weight:500;letter-spacing:.02em;white-space:nowrap}.badge .dot{width:6px;height:6px;border-radius:50%}.equip-card .e-name{font-family:var(--font-heading);font-weight:500;font-size:20px;line-height:1.15}.equip-card .e-cat{font-size:11px;color:#1c1a167a;letter-spacing:.06em;text-transform:uppercase;margin-top:6px}.equip-card .e-loc{display:flex;align-items:center;gap:7px;color:#1c1a169e;font-size:12.5px;padding-top:13px;border-top:1px solid rgba(28,26,22,.07)}.equip-card .e-loc .ico{color:var(--accent);display:inline-flex}.empty-state{color:var(--muted);font-style:italic}.badge-select{position:relative;cursor:pointer}.badge-select select{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;border:none}.e-loc .loc-btn{background:none;border:none;padding:0;font-family:var(--font-body);font-size:12.5px;color:#1c1a169e;text-align:left;border-bottom:1px dashed transparent}.e-loc .loc-btn:hover{border-bottom-color:var(--accent-light);color:var(--ink)}.e-loc .loc-input{flex:1;min-width:0;font-size:12.5px;padding:2px 6px;border:1px solid var(--accent-light);border-radius:6px;background:var(--warm-white);color:var(--ink);outline:none}.e-loc .del-btn{margin-left:auto;background:none;border:none;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:#1c1a1659;padding:0}.e-loc .del-btn:hover{color:#8a4a34}.legend-btn{display:inline-flex;align-items:center;gap:7px;background:none;border:1px solid transparent;border-radius:100px;padding:4px 10px;font-family:var(--font-body);font-size:11.5px;color:var(--ink-50);letter-spacing:.02em}.legend-btn:hover{border-color:#1c1a1629}.legend-btn.on{border-color:var(--ink);color:var(--ink);background:var(--sand)}.legend-btn .dot{width:7px;height:7px;border-radius:50%}.add-btn{border:none;background:var(--ink);color:var(--warm-white);font-size:13px;letter-spacing:.03em;padding:10px 20px;border-radius:100px;transition:background .15s}.add-btn:hover{background:#35322b}.add-btn:disabled{opacity:.6;cursor:default}.ghost-btn{border:1px solid rgba(28,26,22,.16);background:transparent;color:var(--ink-55);font-size:13px;letter-spacing:.03em;padding:10px 20px;border-radius:100px}.ghost-btn:hover{color:var(--ink);border-color:var(--ink)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c1a1659;display:flex;align-items:center;justify-content:center;padding:24px;z-index:20}.modal-card{background:var(--warm-white);border:1px solid var(--border);border-radius:16px;padding:28px 30px;width:100%;max-width:440px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 50px -30px #1c1a1680}.modal-title{font-family:var(--font-heading);font-size:28px;font-weight:400;margin:10px 0 20px}.modal-card label{display:block;font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:.35rem}.modal-card input,.modal-card select,.modal-card textarea{width:100%;padding:.6rem .8rem;border:1px solid var(--sand-deep);border-radius:8px;background:var(--card);color:var(--ink);margin-bottom:1rem;outline:none;resize:vertical}.modal-card input:focus,.modal-card select:focus,.modal-card textarea:focus{border-color:var(--accent-light)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}.row-list{display:flex;flex-direction:column;gap:10px}.row-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;text-align:left;cursor:pointer;border:1px solid var(--border);transition:border-color .15s,transform .1s}.row-card:hover{border-color:var(--accent-light)}.row-main{min-width:0}.row-title{font-family:var(--font-heading);font-size:20px;font-weight:500;line-height:1.15}.row-sub{font-size:12px;color:var(--ink-50);letter-spacing:.02em;margin-top:4px}.row-side{display:flex;align-items:center;gap:14px;flex:0 0 auto}.row-date{font-size:11.5px;color:var(--ink-45);letter-spacing:.02em}.back-link{background:none;border:none;font-family:var(--font-body);font-size:12.5px;letter-spacing:.04em;color:var(--ink-50);padding:0}.back-link:hover{color:var(--accent)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.detail-section{padding:20px 22px}.detail-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.detail-hint{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-45)}.mini-btn{border:1px solid rgba(28,26,22,.16);background:transparent;color:var(--ink-55);font-size:11.5px;letter-spacing:.03em;padding:5px 12px;border-radius:100px}.mini-btn:hover{border-color:var(--ink);color:var(--ink)}.detail-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-top:1px solid rgba(28,26,22,.07)}.detail-row-title{font-size:13.5px}.badge-toggle{background:none;border:none;padding:0}.task-check{display:flex;align-items:center;gap:10px;font-size:13.5px;cursor:pointer;min-width:0}.task-check input{accent-color:var(--accent);width:15px;height:15px;flex:0 0 15px;cursor:pointer}.task-done{text-decoration:line-through;color:var(--ink-45)}.modal-wide{max-width:640px}.currency-toggle{display:flex;gap:6px;margin-bottom:1rem}.currency-toggle .chip{padding:8px 20px}.line-head,.line-row{display:grid;grid-template-columns:1fr 64px 96px 96px 24px;gap:8px;align-items:center}.line-head{font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-45);margin-bottom:6px}.line-head .num,.line-row .num{text-align:right}.line-row{margin-bottom:8px}.line-row input{margin-bottom:0}.line-amount{font-size:12.5px;color:var(--ink-55);font-variant-numeric:tabular-nums}.line-row .del-btn{background:none;border:none;color:#1c1a1659;font-size:12px;padding:0}.line-row .del-btn:hover:not(:disabled){color:#8a4a34}.line-row .del-btn:disabled{opacity:.3;cursor:default}.quote-total{display:flex;align-items:baseline;justify-content:space-between;border-top:1px solid var(--border-soft);padding:14px 0;margin-bottom:14px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-50)}.quote-total-num{font-family:var(--font-heading);font-size:30px;font-weight:400;color:var(--ink);letter-spacing:0;text-transform:none}.row-main.as-link{background:none;border:none;padding:0;text-align:left;cursor:pointer;font-family:var(--font-body)}.row-main.as-link:hover .detail-row-title{color:var(--accent)}.ghost-btn.danger{margin-right:auto;border-color:#b0654a66;color:#8a4a34}.ghost-btn.danger:hover{border-color:#8a4a34}.detail-row .del-btn{background:none;border:none;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:#1c1a1659;padding:0}.detail-row .del-btn:hover{color:#8a4a34}.cal-nav{display:flex;align-items:center;gap:12px}.cal-nav .ghost-btn{padding:7px 14px}.cal-month{font-family:var(--font-heading);font-size:21px;font-weight:500;min-width:170px;text-align:center}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);overflow:hidden}.cal-head{padding:10px 10px 8px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-45);border-bottom:1px solid var(--border-soft);text-align:right}.cal-cell{min-height:104px;padding:8px;border-bottom:1px solid rgba(28,26,22,.06);border-right:1px solid rgba(28,26,22,.06);display:flex;flex-direction:column;gap:4px}.cal-cell:nth-child(7n){border-right:none}.cal-cell.outside{background:#1c1a1605}.cal-cell.outside .cal-date{color:#1c1a1640}.cal-cell.today{background:#fbf6ec}.cal-cell.today .cal-date{color:var(--accent);font-weight:600}.cal-date{font-family:var(--font-heading);font-size:16px;font-weight:500;text-align:right;margin-bottom:2px}.cal-ev{display:flex;align-items:center;gap:6px;border:none;text-align:left;font-family:var(--font-body);font-size:10.5px;line-height:1.25;padding:4px 7px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.cal-ev.shoot{background:#8b6f4726;color:#6e5636;font-weight:500}.cal-ev.task{background:#1c1a160d;color:#1c1a16b3}.cal-ev .dot{width:6px;height:6px;border-radius:50%;flex:0 0 6px}.cal-ev.done{opacity:.45;text-decoration:line-through}.cal-more{font-size:9.5px;color:var(--ink-45);padding-left:7px}.cal-head.weekend{color:var(--accent)}.cal-cell.weekend{background:#8b6f470b}.cal-cell.weekend.today{background:#fbf6ec}.cal-date-row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:2px}.cal-hijri{font-size:9px;letter-spacing:.06em;color:#1c1a1652}.cal-cell.outside .cal-hijri{color:#1c1a162e}.cal-ev.holiday{background:#c4a88247;color:#6e5636;font-weight:500}.cal-ev.observance{background:transparent;border:1px dashed rgba(196,168,130,.8);color:#6e5636}.cal-note{font-size:10.5px;color:var(--ink-45);letter-spacing:.02em;margin-top:10px;font-style:italic}.history-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.bar-chart{display:flex;align-items:flex-end;gap:6px;height:150px;padding-top:8px}.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px}.bar-count{font-family:var(--font-heading);font-size:13px;color:var(--accent);line-height:1}.bar{width:100%;max-width:26px;background:#8b6f4759;border-radius:4px 4px 0 0;min-height:2px;transition:height .3s}.bar-col:hover .bar{background:var(--accent)}.bar-label{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-45)}.hbar-row{padding:9px 0;border-top:1px solid rgba(28,26,22,.07)}.hbar-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:6px}.hbar-name{font-size:13px;display:inline-flex;align-items:center;gap:8px;min-width:0}.hbar-ico{color:var(--accent);display:inline-flex}.hbar-value{font-size:11.5px;color:var(--ink-50);white-space:nowrap;font-variant-numeric:tabular-nums}.hbar-track{height:5px;background:#1c1a160f;border-radius:3px;overflow:hidden}.hbar-fill{height:100%;background:var(--accent-light);border-radius:3px}.gear-list{display:flex;flex-direction:column;max-height:320px;overflow-y:auto;margin-bottom:10px}.gear-item{padding:9px 2px;border-top:1px solid rgba(28,26,22,.07)}.gear-cat{margin-left:auto;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-45)}.login-page{height:100%;display:flex;align-items:center;justify-content:center;background:var(--sand-deep);padding:24px}.login-card{background:var(--warm-white);border:1px solid var(--border);border-radius:16px;padding:3rem 2.75rem;width:100%;max-width:400px;box-shadow:0 20px 50px -34px #1c1a1666}.login-card .login-eyebrow{text-align:center;font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--accent);font-weight:500;margin-bottom:9px}.login-card h1{font-family:var(--font-heading);font-weight:300;font-size:40px;text-align:center;margin-bottom:2rem}.login-card label{display:block;font-size:.78rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:.4rem}.login-card input{width:100%;padding:.7rem .9rem;border:1px solid var(--sand-deep);border-radius:8px;background:var(--warm-white);color:var(--ink);margin-bottom:1.25rem;outline:none}.login-card input:focus{border-color:var(--accent-light)}.login-card button[type=submit]{width:100%;padding:.8rem;background:var(--accent);color:var(--warm-white);border:none;border-radius:100px;font-size:.95rem;font-weight:500;letter-spacing:.06em;transition:background .15s}.login-card button[type=submit]:hover{background:#7a5f3b}.login-card button[type=submit]:disabled{opacity:.6;cursor:default}.login-error{background:#f4e4dd;color:#8a4a34;border-radius:8px;padding:.65rem .9rem;font-size:.85rem;margin-bottom:1.25rem}.loading-screen{height:100%;display:flex;align-items:center;justify-content:center;color:var(--muted);font-family:var(--font-heading);font-size:1.4rem}@media (max-width: 900px){.app-shell{flex-direction:column}.sidebar{display:none}.bottom-nav{display:flex;order:2}.main-content{order:1;padding:18px 18px 26px}.dash-hero{flex-direction:column}.stat-col{flex-direction:row}.stat-card{padding:12px}.stat-card .stat-value{font-size:26px}.countdown-digits .num{font-size:42px}.countdown-digits .colon{font-size:36px}.week-row{overflow-x:auto}.day-card{flex:0 0 116px}.quick-grid{grid-template-columns:1fr 1fr}.equip-grid,.detail-grid,.history-grid{grid-template-columns:1fr}.cal-cell{min-height:72px;padding:5px}.cal-ev{font-size:9px;padding:3px 5px}}@media (min-width: 901px) and (max-width: 1200px){.equip-grid{grid-template-columns:repeat(2,1fr)}}
