/* TOSHI · composants isolés du style applicatif existant. Aucune ressource distante. */
:root {
  --toshi-navy:#123A63;
  --toshi-ink:#1D2C3B;
  --toshi-muted:#586b7d;
  --toshi-orange:#F28C28;
  --toshi-bright:#F28C28;
  --toshi-surface:#FFFFFF;
  --toshi-blue:#2472B5;
  --toshi-background:#F3F6FA;
  --toshi-line:#DCE4ED;
  --toshi-green:#176747;
  --toshi-red:#a72c3b;
  --toshi-radius:18px;
  --toshi-shadow:0 4px 20px #15283f04
}
* {
  box-sizing:border-box
}
body {
  margin:0;
  color:var(--toshi-ink);
  background:var(--toshi-background);
  font:15px/1.55 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  -webkit-font-smoothing:antialiased
}
a {
  color:inherit;
  text-decoration:none
}
button,input,select,textarea {
  font:inherit
}
button,a,input,select,summary {
  touch-action:manipulation
}
button {
  cursor:pointer
}
button:disabled {
  cursor:not-allowed;
  opacity:.55
}
button,input,select,textarea {
  max-width:100%
}
img,svg {
  max-width:100%
}
[hidden] {
  display:none!important
}
:focus-visible {
  outline:3px solid var(--toshi-blue);
  outline-offset:4px
}
h1,h2,h3,p {
  margin-top:0
}
h1 {
  font-size:34px;
  line-height:1.14;
  letter-spacing:-1.2px;
  font-weight:750;
  margin-bottom:12px
}
h2 {
  font-size:19px;
  line-height:1.35;
  letter-spacing:-.35px;
  margin-bottom:16px
}
h3 {
  font-size:16px;
  line-height:1.4;
  margin-bottom:8px
}
p {
  margin-bottom:16px
}
small,.t-small {
  font-size:12px;
  color:var(--toshi-muted)
}
.t-icon {
  width:22px;
  height:22px;
  flex-shrink:0;
  vertical-align:middle
}
.t-skip {
  position:fixed;
  top:-100px;
  left:15px;
  padding:14px;
  background:#fff;
  z-index:100
}
.t-skip:focus {
  top:10px
}
.t-prototype-banner {
  height:31px;
  padding:0 24px;
  display:flex;
  gap:6px;
  align-items:center;
  font-size:10px;
  font-weight:650;
  letter-spacing:.35px;
  background:#e9edf2;
  color:#43546a;
  position:relative;
  z-index:20
}
.t-prototype-banner span {
  font-weight:450
}
.t-prototype-banner a {
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  min-height:28px;
  gap:8px;
  text-decoration:underline;
  text-underline-offset:3px
}
.t-prototype-banner .t-icon {
  width:14px;
  height:14px
}
.t-brand {
  display:flex;
  flex-direction:column;
  width:max-content;
  line-height:1
}
.t-brand strong {
  font-size:25px;
  letter-spacing:-1px;
  font-weight:800
}
.t-brand-dot {
  color:var(--toshi-bright)
}
.t-brand>span {
  font-size:9px;
  font-weight:650;
  letter-spacing:2.8px;
  margin-top:7px
}
.t-avatar {
  width:40px;
  height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#e9edf2;
  color:var(--toshi-navy);
  border-radius:50%;
  font-size:12px;
  font-weight:750;
  flex-shrink:0
}
.t-avatar.t-orange {
  background:#fff0e4;
  color:#99410e
}
.t-avatar.t-blue {
  background:#e7effb;
  color:#25518b
}
.t-avatar-group {
  display:flex;
  padding-left:7px
}
.t-avatar-group .t-avatar {
  border:3px solid white;
  margin-left:-7px;
  width:35px;
  height:35px;
  font-size:10px
}
.t-eyebrow {
  font-size:11px;
  letter-spacing:1.3px;
  font-weight:750;
  text-transform:uppercase;
  color:var(--toshi-muted);
  margin:0 0 12px
}
.t-subtitle {
  color:var(--toshi-muted);
  font-size:14px;
  margin-bottom:0
}
.t-ref {
  font-size:11px;
  letter-spacing:.7px;
  font-weight:750;
  color:var(--toshi-muted)
}
.t-between {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px
}
.t-stack {
  display:grid;
  gap:16px
}
.t-inline {
  display:flex;
  gap:12px;
  align-items:center;
  flex-wrap:wrap
}
.t-muted {
  color:var(--toshi-muted)
}
.t-rule {
  border:0;
  border-top:1px solid var(--toshi-line);
  margin:24px 0
}
.t-spacer {
  margin-top:24px
}
.t-full {
  width:100%
}
.t-button {
  min-height:50px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  background:var(--toshi-orange);
  border:1px solid var(--toshi-orange);
  color:var(--toshi-navy);
  padding:13px 21px;
  border-radius:11px;
  font-size:14px;
  font-weight:700;
  line-height:1.4;
  text-align:center
}
.t-button:hover {
  background:#e57c16;
  border-color:#e57c16
}
.t-button.t-secondary {
  background:white;
  border-color:#c8d2dd;
  color:var(--toshi-ink)
}
.t-button.t-secondary:hover {
  background:#edf2f7
}
.t-button.t-navy {
  background:var(--toshi-navy);
  border-color:var(--toshi-navy);
  color:white
}
.t-button.t-small-button {
  font-size:12px;
  padding:10px 14px;
  min-height:44px
}
.t-text-link {
  min-height:44px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  font-weight:700;
  color:#24548d;
  text-decoration:underline;
  text-underline-offset:3px
}
.t-back {
  min-height:44px;
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-size:13px;
  color:var(--toshi-muted);
  margin:0 0 14px
}
.t-back .t-icon {
  width:17px
}
.t-icon-button {
  width:46px;
  height:46px;
  display:inline-grid;
  place-items:center;
  position:relative;
  border:1px solid var(--toshi-line);
  background:white;
  border-radius:11px
}
.t-notification-dot {
  position:absolute;
  right:11px;
  top:10px;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--toshi-orange)
}
.t-badge {
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:7px;
  padding:5px 9px;
  font-size:11px;
  font-weight:700;
  white-space:nowrap;
  line-height:1.4
}
.t-badge:before {
  content:'';
  width:5px;
  height:5px;
  border-radius:50%;
  background:currentColor
}
.t-blue {
  background:#e9f0fc;
  color:#25528c
}
.t-green {
  background:#e6f4ec;
  color:var(--toshi-green)
}
.t-amber {
  background:#fff0dc;
  color:#8b450e
}
.t-red {
  background:#fdebee;
  color:var(--toshi-red)
}
.t-neutral {
  background:#edf0f3;
  color:#536172
}
.t-panel {
  background:#fff;
  border:1px solid var(--toshi-line);
  border-radius:var(--toshi-radius);
  padding:25px;
  box-shadow:var(--toshi-shadow)
}
.t-panel h2:last-child {
  margin-bottom:0
}
.t-panel-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:20px
}
.t-panel-header h2 {
  margin:0
}
.t-field {
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-bottom:20px;
  min-width:0
}
.t-field>label,.t-field>legend {
  font-size:13px;
  font-weight:650
}
.t-field>label small {
  font-weight:450
}
.t-field input,.t-field select,.t-field textarea,.t-search input {
  width:100%;
  min-height:52px;
  border:1px solid #c8d2dd;
  background:#fff;
  border-radius:10px;
  color:var(--toshi-ink);
  padding:12px 14px;
  font-size:16px;
  line-height:1.5
}
.t-field textarea {
  min-height:112px;
  resize:vertical
}
.t-field input::placeholder,.t-search input::placeholder {
  color:#637286
}
.t-field .t-help {
  font-size:12px;
  color:var(--toshi-muted);
  margin:0
}
.t-field .t-error {
  font-size:12px;
  color:var(--toshi-red);
  margin:0
}
.t-field [aria-invalid=true] {
  border:2px solid var(--toshi-red)
}
fieldset.t-field {
  border:0;
  margin:0 0 20px;
  padding:0;
  display:block
}
fieldset.t-field legend {
  padding:0;
  margin-bottom:10px
}
.t-choice-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px
}
.t-choice {
  min-height:54px;
  border:1px solid #c8d2dd;
  border-radius:10px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px;
  font-size:14px;
  font-weight:550;
  cursor:pointer;
  background:white
}
.t-choice:has(input:checked) {
  border-color:var(--toshi-navy);
  background:#fff7f0;
  box-shadow:inset 0 0 0 1px var(--toshi-orange)
}
input[type=checkbox],input[type=radio] {
  width:21px;
  height:21px;
  accent-color:var(--toshi-navy);
  flex-shrink:0
}
.t-search {
  position:relative;
  display:block
}
.t-search .t-icon {
  position:absolute;
  left:15px;
  top:15px;
  color:var(--toshi-muted);
  width:20px;
  height:20px
}
.t-search input {
  padding-left:45px;
  font-size:14px
}
.t-chips {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:16px 0 24px
}
.t-chip {
  min-height:44px;
  border:1px solid var(--toshi-line);
  background:#fff;
  color:var(--toshi-muted);
  padding:9px 14px;
  border-radius:24px;
  font-size:12px;
  font-weight:650
}
.t-chip[aria-pressed=true] {
  background:var(--toshi-navy);
  border-color:var(--toshi-navy);
  color:white
}
.t-note {
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:16px;
  border-radius:12px;
  font-size:13px;
  line-height:1.55;
  background:#eef3f9;
  color:#35516f
}
.t-note p {
  margin:0
}
.t-note strong {
  display:block;
  margin-bottom:2px
}
.t-note.t-danger {
  color:#902b38;
  background:#fff0f1;
  border:1px solid #f0cbd0
}
.t-note.t-warning {
  color:#804315;
  background:#fff4e6;
  border:1px solid #ecd7bb
}
.t-note.t-success {
  color:#176747;
  background:#eaf6ef;
  border:1px solid #c9e4d5
}
.t-stepper {
  display:flex;
  align-items:center;
  gap:10px;
  margin:20px 0 24px;
  font-size:12px;
  color:var(--toshi-muted)
}
.t-stepper b {
  width:24px;
  height:24px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--toshi-navy);
  color:white;
  font-size:11px
}
.t-stepper .t-step-line {
  flex:1;
  height:1px;
  background:#cdd6e0
}
.t-stepper .t-current {
  color:var(--toshi-ink);
  font-weight:700
}
.t-stepper .t-done b {
  background:#e4f2e9;
  color:var(--toshi-green)
}
.t-stepper .t-next b {
  background:#e6ebf0;
  color:#536579
}
.t-form-footer {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  border-top:1px solid var(--toshi-line);
  padding-top:22px;
  margin-top:24px
}
.t-form-footer .t-text-link {
  margin-right:auto
}
.t-context {
  display:flex;
  align-items:center;
  gap:12px;
  background:#fff;
  border:1px solid var(--toshi-line);
  padding:14px;
  border-radius:12px;
  margin-bottom:22px
}
.t-context-icon {
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  background:#edf2f8;
  border-radius:10px;
  flex-shrink:0
}
.t-context strong {
  display:block;
  font-size:13px
}
.t-context strong span {
  font-weight:450
}
.t-context small {
  display:block;
  font-size:10px;
  margin-top:3px
}
.t-toast {
  position:fixed;
  bottom:90px;
  left:50%;
  transform:translateX(-50%);
  padding:14px 20px;
  background:var(--toshi-navy);
  color:white;
  border-radius:10px;
  z-index:40;
  max-width:calc(100% - 32px);
  font-size:13px
}
.t-dialog {
  border:1px solid var(--toshi-line);
  border-radius:22px;
  padding:32px;
  max-width:430px;
  width:calc(100% - 32px);
  color:var(--toshi-ink);
  text-align:center
}
.t-dialog::backdrop {
  background:#10223988
}
.t-dialog-symbol {
  display:inline-grid;
  place-items:center;
  background:#e5f4ec;
  color:var(--toshi-green);
  width:58px;
  height:58px;
  border-radius:50%;
  margin-bottom:20px
}
.t-dialog p {
  color:var(--toshi-muted)
}
/* Terrain */
.t-mobile-header {
  height:84px;
  padding:20px 25px;
  background:#fff;
  border-bottom:1px solid var(--toshi-line);
  display:flex;
  align-items:center;
  justify-content:space-between
}
.t-mobile-header .t-brand strong {
  font-size:23px
}
.t-mobile-main {
  max-width:560px;
  margin:0 auto;
  padding:27px 24px 115px
}
.t-mobile-main h1 {
  font-size:30px;
  letter-spacing:-.9px
}
.t-mobile-main .t-subtitle {
  font-size:13px
}
.t-mobile-main .t-panel {
  padding:21px
}
.t-mobile-main .t-heading {
  margin-bottom:24px
}
.t-bottom-nav {
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  display:flex;
  justify-content:center;
  background:#fff;
  border-top:1px solid var(--toshi-line);
  z-index:15;
  padding:6px 12px max(6px,env(safe-area-inset-bottom))
}
.t-bottom-nav a {
  flex:1;
  max-width:180px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  min-height:59px;
  font-size:10px;
  color:var(--toshi-muted);
  font-weight:600;
  border-radius:10px
}
.t-bottom-nav a[aria-current=page] {
  color:var(--toshi-navy);
  background:#fff7f0
}
.t-greeting {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  color:var(--toshi-muted);
  margin-bottom:13px
}
.t-greeting:before {
  content:'';
  width:7px;
  height:7px;
  border-radius:50%;
  background:#27835d
}
.t-site-count {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  font-weight:600;
  margin:22px 0;
  color:var(--toshi-muted)
}
.t-site-card {
  display:block;
  background:#fff;
  border:1px solid var(--toshi-line);
  border-radius:16px;
  padding:20px;
  box-shadow:var(--toshi-shadow);
  transition:border-color .15s,transform .15s
}
.t-site-card:hover {
  border-color:#b6c4d4;
  transform:translateY(-2px)
}
.t-site-card h2 {
  font-size:18px;
  margin:16px 0 9px
}
.t-location {
  display:flex;
  align-items:center;
  gap:5px;
  color:var(--toshi-muted);
  font-size:12px;
  margin:0;
  flex-wrap:wrap
}
.t-location .t-icon {
  width:16px;
  height:16px
}
.t-location>span {
  font-size:11px
}
.t-card-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-top:1px solid #edf0f3;
  margin-top:18px;
  padding-top:14px;
  font-size:11px;
  color:var(--toshi-muted)
}
.t-card-bottom>span {
  display:flex;
  align-items:center;
  gap:6px
}
.t-card-bottom .t-icon {
  width:18px;
  height:18px
}
.t-card-bottom strong {
  color:var(--toshi-ink);
  font-weight:750
}
.t-card-bottom>.t-icon {
  color:var(--toshi-navy)
}
.t-mini-metrics {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:22px 0
}
.t-mini-metrics>div {
  padding:18px;
  background:white;
  border:1px solid var(--toshi-line);
  border-radius:13px
}
.t-mini-metrics strong {
  font-size:28px;
  display:block;
  line-height:1.2;
  letter-spacing:-1px
}
.t-mini-metrics span {
  font-size:11px;
  color:var(--toshi-muted);
  display:block;
  margin-top:7px
}
.t-info-list {
  margin:0;
  display:grid;
  gap:17px
}
.t-info-list>div {
  display:grid;
  gap:3px
}
.t-info-list dt {
  font-size:11px;
  color:var(--toshi-muted)
}
.t-info-list dd {
  font-size:13px;
  font-weight:550;
  margin:0
}
.t-person {
  display:flex;
  align-items:center;
  gap:12px;
  padding:13px 0
}
.t-person strong {
  font-size:13px;
  display:block
}
.t-person small {
  font-size:11px;
  display:block
}
.t-operation {
  display:flex;
  align-items:center;
  gap:16px;
  background:#fff;
  border:1px solid var(--toshi-line);
  border-radius:15px;
  padding:20px;
  margin-bottom:13px
}
.t-operation>.t-icon {
  width:26px;
  height:26px;
  color:var(--toshi-navy)
}
.t-operation>span {
  flex:1
}
.t-operation strong,.t-operation small {
  display:block
}
.t-operation strong {
  font-size:15px
}
.t-operation small {
  font-size:11px;
  margin-top:5px
}
.t-operation.t-primary-operation {
  background:var(--toshi-navy);
  border-color:var(--toshi-navy);
  color:white;
  min-height:125px;
  box-shadow:0 8px 18px #15283f12
}
.t-primary-operation small {
  color:#c1cfde
}
.t-primary-operation>.t-icon {
  color:#ffad72
}
.t-operation>.t-icon:last-child {
  width:18px
}
.t-line-card {
  background:#fff;
  border:1px solid var(--toshi-line);
  border-radius:12px;
  padding:16px
}
.t-line-card p {
  font-size:12px;
  margin:11px 0;
  color:var(--toshi-muted)
}
.t-seal-number {
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:14px;
  font-weight:750;
  letter-spacing:.5px
}
.t-seal-number .t-icon {
  width:17px;
  height:17px;
  color:var(--toshi-muted)
}
.t-line-meta {
  font-size:11px;
  border-top:1px solid #edf0f3;
  padding-top:10px
}
.t-mobile-actions {
  margin-top:22px;
  display:grid;
  gap:10px
}
.t-mobile-actions>.t-button {
  width:100%;
  min-height:54px
}
.t-success-emblem {
  margin:7px auto 24px;
  background:#e4f3ea;
  border:8px solid #f2faf5;
  width:88px;
  height:88px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:var(--toshi-green)
}
.t-success-emblem .t-icon {
  width:38px;
  height:38px
}
.t-center {
  text-align:center
}
.t-confirmation-id {
  background:white;
  border:1px solid var(--toshi-line);
  border-radius:15px;
  text-align:center;
  padding:22px;
  margin:26px 0
}
.t-confirmation-id strong {
  display:block;
  font-size:26px;
  letter-spacing:1px;
  margin:7px 0
}
.t-unit-input {
  display:flex;
  align-items:center;
  position:relative
}
.t-unit-input input {
  padding-right:50px
}
.t-unit-input>span {
  position:absolute;
  right:16px;
  color:var(--toshi-muted);
  font-size:13px
}
.t-demo-action {
  font-size:11px;
  color:var(--toshi-muted);
  text-align:center;
  margin:12px 0 0
}
/* Connexion */
.t-login-page {
  background:white
}
.t-login-page .t-mobile-main {
  max-width:none;
  padding:0
}
.t-login-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:calc(100dvh - 31px)
}
.t-login-story {
  background:var(--toshi-navy);
  color:white;
  padding:55px 65px;
  display:flex;
  flex-direction:column;
  position:relative;
  overflow:hidden
}
.t-login-story:after {
  content:'';
  position:absolute;
  width:480px;
  height:480px;
  border:1px solid #ffffff10;
  transform:rotate(30deg);
  bottom:-270px;
  right:-150px;
  box-shadow:0 0 0 60px #ffffff03,0 0 0 120px #ffffff03
}
.t-login-story .t-brand strong {
  font-size:30px
}
.t-login-story .t-brand>span {
  font-size:11px
}
.t-story-content {
  margin:auto 0;
  padding:70px 0;
  z-index:1
}
.t-story-content .t-eyebrow {
  color:#ffb883
}
.t-story-content h2 {
  font-size:clamp(35px,4vw,56px);
  line-height:1.15;
  letter-spacing:-2px;
  font-weight:650;
  margin:24px 0
}
.t-story-content>p {
  font-size:16px;
  color:#bfccdb;
  max-width:350px;
  line-height:1.8
}
.t-story-features {
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  margin-top:35px;
  color:#d0dbe7;
  font-size:12px
}
.t-story-features span {
  display:flex;
  align-items:center;
  gap:8px
}
.t-story-features .t-icon {
  color:#ffab70;
  width:18px;
  height:18px
}
.t-login-footer {
  font-size:11px;
  color:#b5c5d7;
  z-index:1
}
.t-login-form {
  display:flex;
  flex-direction:column;
  justify-content:center;
  max-width:470px;
  width:100%;
  padding:60px 45px;
  margin:auto
}
.t-login-form .t-brand {
  display:none
}
.t-login-form h1 {
  font-size:32px
}
.t-login-form>p {
  color:var(--toshi-muted);
  font-size:13px;
  margin:0 0 30px
}
.t-login-form .t-button {
  width:100%
}
.t-password {
  position:relative
}
.t-password input {
  padding-right:53px
}
.t-password button {
  position:absolute;
  right:5px;
  top:4px;
  background:none;
  border:0;
  color:var(--toshi-muted);
  width:44px;
  height:44px;
  display:grid;
  place-items:center
}
.t-login-support {
  margin:22px 0 0!important;
  font-size:11px!important;
  text-align:center
}
.t-login-demo {
  margin-top:26px;
  border-top:1px solid var(--toshi-line);
  padding-top:18px;
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap
}
.t-login-demo .t-text-link {
  font-size:11px
}
/* Espaces Administratif et Direction */
.t-sidebar {
  position:fixed;
  left:0;
  top:31px;
  bottom:0;
  width:238px;
  background:var(--toshi-navy);
  color:#fff;
  padding:32px 20px;
  display:flex;
  flex-direction:column;
  z-index:10
}
.t-sidebar>.t-brand,.t-sidebar>a {
  margin-left:13px
}
.t-sidebar-caption {
  font-size:9px;
  letter-spacing:1.2px;
  color:#a4b7cc;
  margin:48px 13px 14px;
  font-weight:650
}
.t-sidebar nav a {
  display:flex;
  gap:12px;
  align-items:center;
  min-height:49px;
  padding:12px 13px;
  border-radius:10px;
  margin:5px 0;
  color:#c3d0df;
  font-size:12px;
  font-weight:550
}
.t-sidebar nav a[aria-current=page] {
  background:#2c3f56;
  color:white;
  box-shadow:inset 3px 0 var(--toshi-bright)
}
.t-sidebar nav a[aria-current=page]>.t-icon {
  color:#ffad72
}
.t-sidebar nav a:hover {
  background:#25384f
}
.t-sidebar .t-icon {
  width:19px;
  height:19px
}
.t-nav-count {
  margin-left:auto;
  background:#743d37;
  color:#fff0e6;
  border-radius:5px;
  padding:0 6px;
  font-size:10px
}
.t-sidebar-bottom {
  margin-top:auto;
  padding:30px 13px 0
}
.t-company-mark {
  display:block;
  font-size:19px;
  font-weight:750;
  letter-spacing:-.4px
}
.t-sidebar-bottom strong {
  font-size:10px;
  font-weight:500;
  display:block;
  margin-top:3px;
  color:#cfdae5
}
.t-sidebar-bottom small {
  font-size:10px;
  display:block;
  color:#a7b9cd;
  margin:10px 0 22px
}
.t-sidebar-bottom a {
  font-size:10px;
  color:#c3d0df;
  display:flex;
  gap:8px;
  align-items:center;
  min-height:44px;
  border-top:1px solid #ffffff18;
  padding-top:14px
}
.t-office-header {
  height:83px;
  margin-left:238px;
  background:#fff;
  border-bottom:1px solid var(--toshi-line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 36px;
  gap:16px
}
.t-office-header>p {
  font-size:11px;
  font-weight:650;
  margin:0
}
.t-office-header>p>span {
  color:var(--toshi-muted);
  font-weight:450
}
.t-header-account {
  display:flex;
  gap:14px;
  align-items:center
}
.t-account-name {
  font-size:11px;
  font-weight:650;
  white-space:nowrap
}
.t-account-name small {
  display:block;
  font-size:10px;
  font-weight:450;
  color:var(--toshi-muted);
  margin-top:2px
}
.t-office-main {
  margin-left:238px;
  max-width:1670px;
  padding:35px 36px 60px
}
.t-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  margin-bottom:28px
}
.t-heading h1 {
  font-size:30px;
  letter-spacing:-.9px
}
.t-heading .t-button {
  flex-shrink:0
}
.t-metrics {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
  margin-bottom:25px
}
.t-metric {
  background:#fff;
  border:1px solid var(--toshi-line);
  border-radius:15px;
  padding:20px;
  display:block;
  min-width:0
}
.t-metric-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  color:var(--toshi-muted);
  font-size:11px
}
.t-metric-top .t-icon {
  width:35px;
  height:35px;
  padding:8px;
  background:#edf2f8;
  border-radius:10px;
  color:#3b5d82
}
.t-metric strong {
  font-size:35px;
  font-weight:700;
  display:block;
  letter-spacing:-1px;
  margin:10px 0 4px;
  line-height:1.2
}
.t-metric small {
  font-size:10px
}
.t-metric.is-red strong {
  color:var(--toshi-red)
}
.t-metric.is-red .t-icon {
  background:#fdebee;
  color:var(--toshi-red)
}
.t-metric.is-orange .t-icon {
  background:#fff0df;
  color:#9c490e
}
.t-office-columns {
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(270px,1fr);
  gap:24px
}
.t-office-columns>.t-panel {
  min-width:0
}
.t-workspace-grid {
  display:grid;
  grid-template-columns:minmax(0,1.6fr) minmax(265px,.8fr);
  gap:24px;
  align-items:start
}
.t-form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 22px
}
.t-span-two {
  grid-column:span 2
}
.t-side-info {
  background:#eaf0f6;
  border:1px solid #dbe3ec;
  border-radius:16px;
  padding:24px;
  color:#334e6a
}
.t-side-info h2 {
  font-size:16px
}
.t-side-info p,.t-side-info li {
  font-size:12px;
  line-height:1.8
}
.t-side-info ul {
  padding-left:18px
}
.t-side-info .t-ref {
  font-size:10px
}
.t-table-wrap {
  overflow-x:auto;
  max-width:100%
}
table.t-table {
  width:100%;
  border-collapse:collapse;
  text-align:left;
  font-size:12px
}
table.t-table th {
  font-size:10px;
  font-weight:650;
  letter-spacing:.3px;
  color:var(--toshi-muted);
  background:#f7f9fb;
  padding:13px 12px;
  border-bottom:1px solid var(--toshi-line);
  white-space:nowrap
}
table.t-table td {
  padding:17px 12px;
  border-bottom:1px solid #e9edf1;
  vertical-align:middle
}
table.t-table tr:last-child td {
  border-bottom:0
}
table.t-table td strong {
  font-size:12px;
  display:block
}
table.t-table td small {
  font-size:10px;
  display:block;
  margin-top:4px
}
table.t-table td .t-text-link {
  font-size:11px;
  white-space:nowrap
}
table.t-table caption {
  text-align:left;
  padding:0 0 12px;
  color:var(--toshi-muted);
  font-size:12px
}
.t-table-toolbar {
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:space-between;
  margin-bottom:20px
}
.t-table-toolbar .t-search {
  max-width:370px;
  flex:1
}
.t-priority {
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:17px 0;
  border-top:1px solid #edf0f3;
  font-size:12px
}
.t-priority:first-of-type {
  border-top:0
}
.t-priority>.t-icon {
  color:var(--toshi-red);
  width:19px;
  height:19px;
  margin-top:2px
}
.t-priority>div {
  flex:1;
  min-width:0
}
.t-priority strong {
  display:block;
  font-size:12px;
  line-height:1.6
}
.t-priority small {
  display:block;
  font-size:10px;
  line-height:1.7;
  margin-top:5px
}
.t-priority .t-text-link {
  font-size:10px
}
.t-priority.t-priority-amber>.t-icon {
  color:#9b4e12
}
.t-chart {
  height:135px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin:30px 3px 10px
}
.t-chart>div {
  display:flex;
  flex:1;
  flex-direction:column;
  align-items:center;
  gap:9px;
  height:100%;
  justify-content:flex-end;
  font-size:10px;
  color:var(--toshi-muted)
}
.t-chart i {
  background:#e0e8f1;
  width:100%;
  max-width:38px;
  min-height:6px;
  display:block;
  border-radius:5px 5px 0 0
}
.t-chart>div:last-child i {
  background:var(--toshi-orange)
}
.t-chart span {
  font-size:10px
}
.t-chart-note {
  font-size:10px;
  color:var(--toshi-muted);
  text-align:center;
  margin:10px 0 0
}
.t-assignee {
  display:flex;
  gap:14px;
  align-items:center;
  padding:17px 0;
  border-bottom:1px solid #e9edf1;
  cursor:pointer;
  min-height:76px
}
.t-assignee:last-child {
  border-bottom:0
}
.t-assignee>input {
  margin:0 2px 0 auto
}
.t-assignee strong {
  font-size:13px;
  display:block
}
.t-assignee small {
  font-size:11px;
  display:block;
  margin-top:3px
}
.t-seal-grid {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:20px 0
}
.t-seal-grid span {
  background:#eef3f8;
  border:1px solid #dae3ec;
  padding:9px 13px;
  border-radius:8px;
  font-size:12px;
  font-weight:650;
  letter-spacing:.5px
}
.t-tabs {
  display:flex;
  gap:8px;
  background:#edf1f5;
  padding:5px;
  border-radius:11px;
  margin-bottom:24px
}
.t-tabs button {
  flex:1;
  min-height:45px;
  padding:9px 14px;
  border:0;
  background:transparent;
  color:var(--toshi-muted);
  font-size:12px;
  font-weight:650;
  border-radius:8px
}
.t-tabs button[aria-pressed=true] {
  background:white;
  color:var(--toshi-ink);
  box-shadow:0 1px 4px #15283f10
}
.t-summary-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:13px 0;
  border-bottom:1px solid #d6e0e9;
  font-size:12px;
  gap:10px
}
.t-summary-row:last-child {
  border:0
}
.t-summary-row strong {
  font-size:18px
}
.t-timeline {
  list-style:none;
  margin:0;
  padding:0
}
.t-timeline li {
  position:relative;
  padding:0 0 28px 31px;
  border-left:1px solid #dae2e9;
  margin-left:8px
}
.t-timeline li:last-child {
  border:0;
  padding-bottom:0
}
.t-timeline li:before {
  content:'';
  position:absolute;
  left:-5px;
  top:5px;
  width:9px;
  height:9px;
  background:#90a5bb;
  border-radius:50%;
  box-shadow:0 0 0 4px #fff
}
.t-timeline li:first-child:before {
  background:var(--toshi-orange)
}
.t-timeline time {
  font-size:10px;
  color:var(--toshi-muted);
  display:block;
  margin-bottom:6px
}
.t-timeline strong {
  font-size:13px;
  display:block;
  margin-bottom:5px
}
.t-timeline p {
  font-size:12px;
  color:var(--toshi-muted);
  margin:0;
  line-height:1.75
}
.t-document-card {
  background:#f0f3f7;
  padding:23px;
  border-radius:14px
}
.t-document-sheet {
  background:#fff;
  padding:25px 20px;
  box-shadow:0 4px 15px #15283f10;
  font-size:9px;
  color:#40536a;
  border-top:4px solid var(--toshi-orange);
  min-height:330px
}
.t-document-sheet h3 {
  font-size:15px;
  margin:25px 0 8px
}
.t-document-sheet .t-brand strong {
  font-size:15px
}
.t-document-sheet .t-brand>span {
  font-size:5px
}
.t-document-sheet table {
  width:100%;
  border-collapse:collapse;
  font-size:8px;
  margin:20px 0
}
.t-document-sheet td,.t-document-sheet th {
  padding:8px 3px;
  border-bottom:1px solid #e3e8ee;
  text-align:left
}
.t-document-sheet .t-watermark {
  color:#8e4050;
  letter-spacing:1px;
  font-size:8px;
  font-weight:700
}
.t-document-actions {
  display:grid;
  gap:10px;
  margin-top:20px
}
.t-legend {
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  margin:18px 0 0;
  font-size:11px;
  color:var(--toshi-muted)
}
.t-legend>span {
  display:flex;
  align-items:center;
  gap:6px
}
.t-legend i {
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--toshi-orange)
}
.t-legend .t-legend-muted {
  background:#8b9db0
}
.t-inventory-split {
  display:flex;
  height:12px;
  border-radius:5px;
  overflow:hidden;
  margin:24px 0 18px
}
.t-inventory-split span:nth-child(1) {
  background:#4779a9;
  flex:74
}
.t-inventory-split span:nth-child(2) {
  background:#7ab493;
  flex:18
}
.t-inventory-split span:nth-child(3) {
  background:#c64f56;
  flex:2
}
.t-inventory-split span:nth-child(4) {
  background:#a17448;
  flex:1
}
.t-count-list {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px
}
.t-count-list small {
  display:block;
  font-size:10px
}
.t-count-list strong {
  font-size:23px;
  display:block;
  margin-bottom:3px
}
.t-empty {
  padding:28px;
  text-align:center;
  color:var(--toshi-muted)
}
.t-component-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px
}
.t-swatch {
  display:inline-block;
  width:48px;
  height:48px;
  border-radius:11px;
  margin:0 8px 8px 0;
  vertical-align:middle
}
/* Catalogue autonome */
.t-catalogue {
  max-width:1200px;
  margin:0 auto;
  padding:40px 30px
}
.t-catalogue-header {
  background:var(--toshi-navy);
  color:#fff;
  padding:40px;
  border-radius:22px;
  margin:26px 0 32px
}
.t-catalogue-header h1 {
  max-width:750px;
  font-size:42px;
  margin:26px 0 18px
}
.t-catalogue-header p {
  color:#c2d0df;
  max-width:650px;
  font-size:14px
}
.t-catalogue-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin-bottom:35px
}
.t-catalogue-card {
  display:flex;
  flex-direction:column;
  gap:12px;
  background:white;
  border:1px solid var(--toshi-line);
  border-radius:15px;
  padding:22px
}
.t-catalogue-card h3 {
  margin:0
}
.t-catalogue-card p {
  font-size:12px;
  color:var(--toshi-muted);
  flex:1
}
.t-catalogue-card .t-ref {
  color:var(--toshi-navy)
}
@media(min-width:1800px) {
  .t-office-main {
    margin-right:auto
  }
  .t-office-columns {
    grid-template-columns:minmax(0,2fr) minmax(300px,1fr)
  }
}
@media(max-width:1100px) {
  .t-sidebar {
    width:210px;
    padding-left:13px;
    padding-right:13px
  }
  .t-office-header,.t-office-main {
    margin-left:210px
  }
  .t-office-header {
    padding:0 24px
  }
  .t-office-main {
    padding:28px 24px 50px
  }
  .t-office-header>p>span {
    display:none
  }
  .t-office-columns,.t-workspace-grid {
    grid-template-columns:1fr
  }
  .t-metrics {
    gap:12px
  }
  .t-metric {
    padding:16px
  }
  .t-metric-top {
    font-size:10px
  }
  .t-metric-top .t-icon {
    width:28px;
    height:28px;
    padding:6px
  }
  .t-metric strong {
    font-size:30px
  }
  .t-login-story {
    padding:40px
  }
  .t-story-content h2 {
    font-size:40px
  }
}
@media(max-width:850px) {
  .t-sidebar {
    position:static;
    top:auto;
    bottom:auto;
    width:auto;
    padding:20px 24px
  }
  .t-sidebar>a {
    margin:0
  }
  .t-sidebar>.t-sidebar-caption,.t-sidebar-bottom {
    display:none
  }
  .t-sidebar nav {
    display:flex;
    gap:6px;
    flex-wrap:wrap;
    margin-top:18px
  }
  .t-sidebar nav a {
    font-size:11px;
    min-height:44px;
    padding:9px 12px;
    margin:0
  }
  .t-sidebar nav a>.t-icon {
    width:17px;
    height:17px
  }
  .t-nav-count {
    display:none
  }
  .t-office-header,.t-office-main {
    margin-left:0
  }
  .t-office-header {
    height:72px
  }
  .t-office-main {
    padding-top:25px
  }
  .t-metrics {
    grid-template-columns:repeat(4,minmax(0,1fr))
  }
  .t-login-layout {
    grid-template-columns:1fr 1fr
  }
  .t-login-story {
    padding:30px
  }
  .t-story-content h2 {
    font-size:34px
  }
  .t-story-features {
    flex-direction:column;
    gap:12px
  }
  .t-login-form {
    padding:35px 27px
  }
  .t-component-grid {
    grid-template-columns:1fr
  }
}
@media(max-width:600px) {
  .t-prototype-banner {
    padding:0 14px;
    height:31px;
    font-size:9px;
    letter-spacing:0;
    gap:4px
  }
  .t-prototype-banner span {
    display:inline
  }
  .t-prototype-banner a {
    font-size:10px
  }
  .t-mobile-header {
    padding:19px 21px;
    height:80px
  }
  .t-mobile-main {
    padding:24px 20px 110px
  }
  .t-mobile-main h1 {
    font-size:29px
  }
  .t-mobile-main .t-heading {
    display:block
  }
  .t-mobile-main .t-panel {
    padding:18px
  }
  .t-context {
    padding:12px
  }
  .t-context small {
    font-size:9px
  }
  .t-login-layout {
    display:block;
    min-height:calc(100dvh - 31px)
  }
  .t-login-story {
    display:none
  }
  .t-login-form {
    max-width:430px;
    padding:39px 27px
  }
  .t-login-form>.t-brand {
    display:flex;
    margin-bottom:47px
  }
  .t-login-form h1 {
    font-size:31px
  }
  .t-login-form .t-eyebrow {
    font-size:10px
  }
  .t-login-support {
    font-size:11px
  }
  .t-login-demo {
    margin-top:23px
  }
  .t-office-header {
    padding:0 20px;
    gap:12px
  }
  .t-office-header>p {
    font-size:10px
  }
  .t-account-name {
    display:none
  }
  .t-header-account {
    gap:8px
  }
  .t-office-main {
    padding:25px 18px 40px
  }
  .t-heading {
    display:block;
    margin-bottom:22px
  }
  .t-heading h1 {
    font-size:27px;
    letter-spacing:-.8px
  }
  .t-heading>.t-button {
    margin-top:18px
  }
  .t-metrics {
    grid-template-columns:1fr 1fr;
    gap:10px
  }
  .t-metric {
    padding:16px
  }
  .t-metric-top {
    font-size:10px;
    gap:5px
  }
  .t-metric-top .t-icon {
    width:27px;
    height:27px;
    padding:6px
  }
  .t-metric strong {
    font-size:30px;
    margin:9px 0 4px
  }
  .t-metric small {
    font-size:9px
  }
  .t-panel {
    padding:18px;
    border-radius:15px
  }
  .t-panel-header {
    align-items:flex-start;
    gap:8px
  }
  .t-panel-header h2 {
    font-size:17px
  }
  .t-panel-header>.t-text-link {
    font-size:10px;
    flex-shrink:0
  }
  .t-office-columns,.t-workspace-grid {
    gap:18px
  }
  .t-form-grid {
    grid-template-columns:1fr;
    gap:0
  }
  .t-span-two {
    grid-column:auto
  }
  .t-form-footer {
    flex-wrap:wrap
  }
  .t-form-footer>.t-button {
    flex:1
  }
  .t-form-footer>.t-text-link {
    width:100%
  }
  .t-table-toolbar {
    align-items:stretch;
    flex-direction:column
  }
  .t-table-toolbar .t-search {
    max-width:none
  }
  .t-form-footer .t-button {
    padding:13px 15px
  }
  .t-side-info {
    padding:20px
  }
  .t-table.t-responsive thead {
    display:none
  }
  .t-table.t-responsive tr {
    display:block;
    border-bottom:1px solid var(--toshi-line);
    padding:14px 0
  }
  .t-table.t-responsive tr:last-child {
    border-bottom:0
  }
  .t-table.t-responsive td {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    border:0;
    padding:7px 0;
    min-height:30px;
    text-align:right
  }
  .t-table.t-responsive td:before {
    content:attr(data-label);
    font-size:10px;
    color:var(--toshi-muted);
    text-align:left
  }
  .t-table.t-responsive td>div {
    text-align:right
  }
  .t-table.t-responsive td:first-child:before {
    font-weight:700
  }
  .t-table.t-responsive td[data-label='Sélection'] {
    justify-content:flex-end
  }
  .t-table.t-responsive td[data-label='Sélection']:before {
    margin-right:auto
  }
  .t-sidebar {
    padding:22px 18px 13px
  }
  .t-sidebar nav {
    gap:5px;
    margin-top:17px
  }
  .t-sidebar nav a {
    font-size:10px;
    padding:9px 10px;
    min-height:42px
  }
  .t-sidebar nav a>.t-icon {
    width:16px;
    height:16px
  }
  .t-tabs button {
    font-size:11px;
    padding:9px
  }
  .t-catalogue {
    padding:24px 18px
  }
  .t-catalogue-header {
    padding:26px
  }
  .t-catalogue-header h1 {
    font-size:31px
  }
  .t-catalogue-grid {
    grid-template-columns:1fr
  }
  .t-chart {
    gap:10px
  }
  .t-dialog {
    padding:25px
  }
  .t-document-sheet {
    min-height:300px
  }
}
@media(prefers-reduced-motion:reduce) {
  *,*:before,*:after {
    scroll-behavior:auto!important;
    transition:none!important;
    animation:none!important
  }
}
@media print {
  .t-prototype-banner,.t-sidebar,.t-office-header,.t-bottom-nav {
    display:none
  }
  .t-office-main,.t-mobile-main {
    margin:0;
    padding:0;
    max-width:none
  }
  .t-panel {
    box-shadow:none;
    break-inside:avoid
  }
}
.t-sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.t-link-button {
  background:none;
  border:0;
  padding:0;
  text-align:left;
  font:inherit;
  cursor:pointer
}
.t-danger-text {
  color:var(--toshi-red)
}
.t-bar-0 {
  height:4px
}
.t-bar-1 {
  height:24px
}
.t-bar-2 {
  height:48px
}
.t-bar-3 {
  height:72px
}
.t-bar-4 {
  height:96px
}
.t-bar-5 {
  height:120px
}
.t-regularisation-row {
  padding:20px 0;
  border-bottom:1px solid var(--toshi-line)
}
.t-regularisation-row:last-of-type {
  border-bottom:0
}
.t-regularisation-row .t-field {
  margin-top:16px;
  margin-bottom:0
}
.t-swatch-navy {
  background:var(--toshi-navy)
}
.t-swatch-orange {
  background:var(--toshi-orange)
}
.t-swatch-white {
  background:white;
  border:1px solid var(--toshi-line)
}
.t-swatch-paper {
  background:var(--toshi-background);
  border:1px solid var(--toshi-line)
}

/* Identité C2IS — Groupe CEDEV. Identifiants CSS techniques conservés. */
.t-brand{max-width:100%}
.t-brand>.t-brand-subtitle{font-size:11px;letter-spacing:0;line-height:1.4;white-space:normal}
.t-brand>.t-brand-group{font-size:9px;letter-spacing:1px;line-height:1.4}
.t-login-story .t-brand>.t-brand-subtitle{font-size:14px}
.t-login-story .t-brand>.t-brand-group{font-size:11px}
h1,h2,h3{color:var(--toshi-navy)}
.t-login-story h2{color:white}
.t-text-link{color:var(--toshi-navy)}
.t-sidebar{overflow-y:auto}

/* Sélections visibles sans dépendre de la couleur : coche HTML native conservée. */
.t-choice:has(input:checked),.t-choice.is-selected{background:#eaf2fa;border:2px solid var(--toshi-navy);box-shadow:inset 0 0 0 1px var(--toshi-navy)}
.t-choice input[type=checkbox],.t-choice input[type=radio]{appearance:auto;accent-color:var(--toshi-navy);flex-shrink:0;opacity:1}
.t-choice:focus-within{outline:3px solid var(--toshi-blue);outline-offset:3px}
